Similarly to #2970 I think msg.gas is very misleading as it seems to suggest the gaslimit for that given message, which is immutable, but rather it is a mutable gas left property.
I'd argue it makes more sense making it a global function named gasleft() (alternatively gasleft as a property similar to <address>.balance).