I agree. System clocks should be based off of "International Atomic Time", TAI, which is also monotonic, and not subject to UTC's leap seconds, as UTC is calculated as an offset of TAI.
Yes, but the VM clock guaranteed more, every time you access the clock using erlang:now() you would get a monotonically increasing value. Practical to be sure, but not scalable.
How does TAI not also solve monotonically increasing values, and in a standardized way to boot? That's a characteristic of it by definition, as I tried to explain. :P