I wouldn’t stream other players based on line of sight. While this sounds good in principal you are forgetting about instantiate and destroy cost every time a player comes into sight or leaves it.
Have a set radius in which the client will be aware of nearby player’s and stream those players in. When the players leave that zone (or leave an even bigger secondary zone), you can then remove that player from the client.
You also need to factor in what sort of information you want to stream in and send to the client. If the player is within the streaming radius, but occluded or very far away, you don’t need to send constant updates, or send every animation state update or what their actions are.
There are loads of articles on the web on effective MMO network programming and post-mortems, I’d suggest you read a few of them.
To answer your question in short. Keep it simple with a single server instance, and get that working well.