Are they really using the same render layer for both the viewmodel and world? That's stupid. If you're making an FPS, the viewmodel should be on a separate layer from the world, allowing you to adjust the FOVs separately. If you need the viewmodel to interact with something in the world, just temporarily change the viewmodel FOV during these interactions. Or you could just change the world FOV. I think Bioshock Infinite did that. Seeing the camera zoom in is a bit weird at first but a worthwhile compromise for overall playability when it actually matters. Or you could temporarily put the interactive objects on the same layer as the viewmodel.
There are a lot of ways to work around this problem and other games have done it before.