Does Views cache row entity?
Yes and no.

user_load() leverages a per-request cache.  This is implemented as a static cache in the entity controller (see the DrupalDefaultEntityController class).  So, if the same user is loaded multiple times during the same request, the subsequent loads will come from the static cache.

In a base install, entities are not cached between requests.  But, fields attached to entities are cached in the cache_field bin.

Data for views may or may not be cached, depending on your global Views settings and overrides for a particular view.

If you have the Entity Cache module installed, then entities are cached between requests in whatever backend you have defined.  There are almost no reasons to not have this module installed on a site.  It provides huge performance improvements, especially with non-SQL cache backends.