В заявлении:
fooFunc().barFunc(bazFunc());
barFunc(), очевидно, не может выполняться до тех пор, пока не будут завершены как bazFunc(), так и fooFunc().
Но гарантирован ли порядок выполнения fooFunc() и bazFunc()?
Связанный (но другой!) вопрос: Порядок выполнения гарантийных параметров в Java?