Michael, the memory error I was getting wasn't out of memory and I can certainly understand getting too much back - that is why I was trying to be clever and limit my results, knowing that I didn't care to flip through large sets and do my own filtering... I was getting an invalid memory check - undoubedtly due to my casting the result set as something it really wasn't - that much I understood, but didn't know why.
And I'm running build 833, so will look into upgrading.
Geert - I like your ideas, at least a select count() would allow me to avoid an empty set problem and even better for me right now, the SQLQuery on a subset of attributes to get me going will work (at this point, building a list of these, so few attributes). I am not (yet anyway) going deep in the properties of an element, but when/if I do I can instantiate it. My current models aren't large enough to "page through" yet, but certainly could over time if large sets are in my future.
In general I don't like to bypass interfaces like these, for all the obvious reasons, but in this case it's a simple enough query and I won't fool myself into thinking I really have the element instantiated

Perhaps I'll create a lightweight, lazily instantiated object wrapping element that provides me a "list" friendly interface (essentially an indentifying string with a key/ID/GUID).
Thanks for the help.
Chris