MacOS has built-in file versioning since Lion. Whenever you save a file, it creates a version. You can browse and restore an old version using the program that created it.
Admittedly, this only works for applications that use the API. For anything in plain text you should probably be using a git repo though.
You have some good points, however Apple has allowed (even if temporarily) third-parties to exist on the periphery to fill-in solutions. TarSnap, SpiderOak One and BackBlaze all seem like viable options. Perhaps even Carbonite too.