This question is sort of a re hash of previous post
'Business entity visibility of persistence layer'.

Similar idea, I have an object A which has property Object B.
public class A{
 private B b;
 public B getB();
 public void setB(B b);

If I use lazy loading and dont populate A's property b until it is accessed, can this be implemented outside of the business and persistance layer.
That is I have some remote interface client use
public interface SomeManagerOrService{
public A getA(Id id);
public A[] getAllAs(); etc etc etc.
This is accessed from some remote webtier or swing app but looks like lazy loading is pointless because the client tier if it wants to deal with this clean abstracted interface, well it expects the full object graphs to be loaded. Unless it knows about special proxy objects, and is then in effect talking to the persistance layer. Real issue here, is for simple Crud system.
Client -> Business Tier - > Persistance Tier. That well lazy loading is not really practical (then again CRUD systems are in effect not really practical). And that lazy loading is only really effective in businness/persistance tier when you are dealing with non crud methods such on the session interface such as
String[] getNickNamesForAllObjectAsOverAge(int age); (note ObjectA now has a nickname and age property).
So what I am saying is that lazyloading works for a session tier that has proper business methods instead of the perfect CRUD methods that return object graphs.