Disguising traffic is quite easy to do in many cases. For example, many Bittorrent clients support the notion of "HTTP seeding". This uses the protocol traditionally associated with the web for bulk file transfer. This bittorrent traffic does not have the same requirements as your web browsing, despite using the same protocol!
You're right that you might want both low latency and high bandwidth. In that case, you would (as you said) have to pay a premium for it. No matter what price point you choose, though, you probably still want to make a distinction between bittorrent and VOIP. Their requirements are worlds apart.
So my point is that even if the ISP can determine the protocol, that doesn't necessarily correspond to what the applications communicating need. Moreover, if it's encrypted traffic, the ISP likely can't even determine the protocol. So having the application on the customer's computer tag the traffic with its requirements is the only way you can get even close to optimal (and neutral) traffic shaping.