Nothing is particularly wrong, it’s just that almost all of the core components are rendered with block level elements (I think TextField, NativeButton and NativeSelect are the only exceptions), hence each one wraps to a new line. Adding captions to any component will also cause the following ones to wrap to a new line (captions are rendered inside DIV elements).
You can of course control this mostly with CSS, by making all elements inside the CssLayout inline/inline-block elements.
Thanks for pointing out the error in the Book, seems exactly the opposite what should happen, no component is by default inline-block, not even inside CssLayout.