UNGAS and why was GAS made available to programming smart contracts?

Hardforks, such as Istanbul, have illustrated the best practice that smart contracts should not make any assumptions about gas. Gas costs have, can, and will change, for example: Is transfer() still safe after the Istanbul update? There are UNGAS proposals and discussions: Disable opcode GAS. For CALL, CALLCODE and DELEGATECALL, remove the gas parameter, and…