Судя по всему, ваш вопрос стоит понимать так:
Почему объекты в Java нельзя создать на стеке?
На мой взгляд, основная причина этого шага — упразднение указателей из языка и единообразная схема работы с памятью (gc).
PS кстати, если бы стека и правда не было, то выполнять вложенные вызовы методов вы бы не могли.