Although we can but guess as to the real reason, one of them could be that strictly speaking it's not very OO.
If you view methods as actions that represent an action of the modelled world, method chaining doesn't really fit into that picture.
Another reason could be the chaos that might ensue when you're trying to override a chained method. Imagine this situation:
class Foo {
Foo chainedMethod() {...}
}
class Bar extends Foo {
Foo chainedMethod() {...} //had to return Foo for Java versions < 1.5
void doStuff();
}
So when you're trying to do new Bar().chainedMethod().doStuff()
, it won't compile. And ((Bar)new Bar().chainedMethod()).doStuff()
doesn't look very good, does it :)