Your first claim seems to boil down to “a token should only serve one purpose and having it serve two purposes detracts from each use case.”
This may or may not be accurate. Since we don’t have a set of tools for modeling and analyzing sophisticated cryptoeconomic systems we really have no way of testing your claim, which is…
Commit-reveal schemes aren’t ideal because they do not prevent accidental trade collisions and require 2 transactions per trade. Talk about commit-reveal schemes in-depth here:
Gas price limits give miners free reign to front-run everyone else. If there is sufficient volume moving through Bancor, and assuming there is no mechanism in place to prevent miner front-running, it is conceivable that front-running could provide miners a greater source of revenue than the block subsidy.
Hi Lukas, thank you for looking over our smart contracts! EtherToken.sol inherits from SafeMath.sol which provides safe arithmetic operations. In this case, EtherToken.sol uses safeSub(balances[msg.sender], amount) to ensure that msg.sender has a sufficient balance.