On systems with /dev/fd/x:
cat - << E0 /dev/fd/3 3<< E3
foo bar
E0
bar baz
E3
That is, open the two here documents on different file descriptors. If you open them both on fd 0, of course the last open overrides the previous ones.
The above would be more useful with commands like paste though.
Note that zsh has the MULT_IOS feature (enabled by default and disabled with unsetopt MULT_IOS or when emulating other shells) whereby if you redirect a file descriptor for input more than once, zsh feeds instead the concatenation of the corresponding inputs (via a pipe in a separate process). So in zsh:
$ cat << E1 << E2
heredoc> foo
heredoc> E1
heredoc> bar
heredoc> E2
foo
bar
cat's stdin is a pipe then and zsh feeds the content of the two here documents in sequence at the other end of the pipe.
There a similar feature for output redirection.
ls > a > b
makes ls write to a pipe and zsh writes to a and b concurrently (like a form of tee) while in other shell's ls's stdout would just be b (and a would have been truncated but never written to).