wpquery properties last_query and last_result : should these be public or private?

As you can guess from version number this code is ancient. So ancient in fact that var keyword is from PHP 4 and is deprecated in PHP 5 (considered synonym of public for backwards compatibility).

So inline doc hints it is private because back then there was no actual property visibility in PHP language.

So conceptually it probably would have been protected in modern code (then it would probably need getters, because these two properties are highly useful for debug).

Practically however these will eternally be de–facto public, because changing them to private/protected would mean breaking backwards compatibility, which WordPress is dead set against.