Bidirectional communication is possible over a serial line, so you can arrange to run multiple sessions over one. You'll need some protocol for multiplexing them, possibly something like PPP that makes the serial line act as a network connection.
Without multiplexing, consider what happens if both sides print a prompt and expect a command in response (be it a shell prompt or a login prompt). Side A prints a prompt, and expects to read a command; side B prints a prompt; side A reads the prompt from B... and processes it as a command. That won't work.
In the least you'd need some arrangement to agree which side should act as the host for a session. E.g. start both sides in a passive mode, waiting for the other to send a command to request a session. Then launch the login process on the host and a terminal client on the client side. At the end of the session, return to the neutral state to be ready for a new session (in either direction).