I thought returning html from server was considered mixing up separation of concerns… oh well
That's why the H in HTTP and in HTML stand for "Hypertext." Any time a webserver replies with something other than markup, _that's_ the extension/exception to that very old design.
Now, if you're talking about the separation of user-interface, data, logic, and where HTML fits in, that's a much bigger discussion.
Returning html from a server is... just the WWW.