If you make a View that contains Field.module fields (for display, not for Sort or Filter criteria), the views_handler_field_field class loads every entity within the view and then just pulls out the needed values for display.
As far as I know, this architectural decision was made to avoid the MySQL JOIN limit on tables (61). However, most views won't get near to that many JOINs. We may be able to get a major efficiency improvement on field listings if we intelligently determined how many JOINs were going to be used, and only resort to loading all entities if nearing the limit.
There may be other problems with some fields that assume that they get the entire node, which may need to be adjusted. Let's do some research on if this is possible and/or worth it from a performance perspective.
Recent comments
Worth mentioning as it was in zulip chat by @yorkshirepudding I just tested and the two work together without issue as long as you don't use the "Exclude comments from Content...
Search does not include comments
There is also Node Comments Search - this searches the node and all comments (default search is node and first page of comments) as part of the content search. Izzy's module above is a separate...
Search does not include comments
I have created a new module comment_search
Search does not include comments