Anyway, I had not seen the use of lazy loading, and it seems like a good idea.
Example, I have a particular client who has slightly over 302,000 invoice and well over 557,000 quotes, I've just logged in to check. The mobile sales team uses an Android app that I developed for them, and no I do not load over 302k invoices or over 557k quotes into the xCLV's. I actually load the last 1000 invoices/quotes and then I use a modified version of the Lazy Loading to load the previous 1000 invoices/quotes to populate the xCLV's.
Please note: 1000 lines takes in average time of 8/10th of a second in my apps to populate the xCLV's (each line has multiple labels to fill), this is using 4G mobile data.
There is a 'Full Population' button that warns against and about the extra time it takes to load all invoices/quotes, all my bespoke apps manipulate active search filters to get users the list and information they require almost instantly (easily within 1 second using 4G).
No, there's never ever a need to load thousands of lines into a list, never.
Enjoy...