I'm admittedly new to all of this, but as I learn about the transaction model, it seems to be a confusing business model at the very least. I can understand that the price of gas fluctuates or can be bid up or down. But why should a consumer have to guess how much gas is required?
In a good interface, a consumer doesn't have to guess how much gas is required.
Sending Ether from one person to another always costs the exact same amount of gas. Sending an ERC20 token (provided it follows the standard) also costs a fixed number.
Each operation (line of a smart contract) costs a known number of gas. It is quite easy for people who run websites/shops/etc. to programmatically use the knowledge and know an exact amount of gas that is required. If you interact with a smart contract using MyEtherWallet, you will see that they estimate it for you.