What you propose instead: "a different colored coin representing 10 shares, and another one representing 100 shares (like the different denominations of dollar bills)" is much more complex, and it won't work:
Suppose you have $100 coin, as a single coin.
How do you send $54.23?
That's simply impossible.
So you'd rather push complexity to higher levels (and create inconvenience for end users, as you admitted yourself) than add 10-50 lines of code to color kernel?
I just do not understand this.
But I'm not going to argue. I already wrote everything which I could write on this topic.