The purpose of this was to eliminate the need for "friend" classes.
This sometimes conflicts with what people coming from C and C++ are used to with everything being in one file (after headers are added by the preprocessor). But having modules gives opportunities for better ways to organize the code.
As for trivial property accessors and setters, those get inlined, so are not overhead.