I think your problem is in the way you understand the implementation of an FPS, rather than Locking objects.
Player 1 will render his own screen, Player 2 will render his screen independantly of yours.
In an FPS, Player 1 will hide his character model, show a gun locked to the screen, and place the camera in his position. He will also render the Player 2 character in position.
Player 2 will hide his character model, show a gun locked to the screen, and place the camera in his position. He will also render the Player 1 character in position.
I hope that makes sense - each player is rendering their own version of the scene, and what the other person is rendering in their view is totally irrelevant. You are both interpreting the same data from different viewpoints.