I always want my variable names to be as long and descriptive as possible. We're no longer in the teletype era and our monitors are huge. With autocomplete there is no reason to keep variable names short
Having Getters for each member variable always seems fine and reasonable. It's when you have getters that do "magic" that I feel a little.. unsure. Like if it's taking a member and returning it in a different unit that seems kosher... But there is a fuzzy line where at some point the Getter is doing too much work to genuinely be a getter. It gives a false impression for the internal structure of the program. But conveying the const'ness is important as you describe (or semi-constness if you have caching)
I haven't really seen this done but couldn't Google pour money in to developing very high quality GPL'd libraries for say.. C++ or Python - becoming the defacto standard libraries. If other's want to use them in their closed source projects they'd have to pay licenses to Google, however internally they can use them in their closed source code since they own the rights to it.
The trick would be get that critical mass where competing libraries aren't used as much. Google definitely seems to have the talent and workforce to do it
MATLAB has cashed in and they don't have a free version. Octave isn't eating their lunch.
And it's not like the C/C++ guys made a ton of cashmoney - so "just make it free" isn't generally a viable business model