Can caching plugins (like w3 Total Cache or similar) force themes and plugins to use cache for every object instantiated? Or are they just optimizing plain WordPress.
No, they can't. Caching plugins cannot possibly know how plugins and themes work internally. They store whole html pages and detect some changes to determine whether a page needs refreshing.
Suppose they would able to analyse all code running and cache every time an object is initiated. Not only would that process itself cost a lot of computing time, many objects would be cached pointlessly, because they are used only once anyway. And the result is cached as part of the page.
Some objects that return on avery page (menus, widgets) might benefit from caching, but you would need deep insight in a theme to see whether a menu is the same on every page or if there maybe is a filter somewhere that changes it.