After reading Eschewing Zshell for Emacs Shell and Mastering Eshell I've been trying out the eshell a bit more.
One thing both recommended was the "smart display" mode, however I found the instructions for enabling it didn't work for me. Maybe something changed between versions.
In any case, to make it work, I had to put eshell-smart-initialize in my eshell-mode-hook:
(add-hook 'eshell-mode-hook
(lambda ()
(eshell-smart-initialize)))