In unity there are a few approaches.
The first one is to use Fixed update, which fires on a regular interval instead of at the end of every frame, so framerate independent. I don't think that works well for input though.
Secondly, you can multiply things by time.deltatime, which is the difference in time between the last two frames. When you do this, it can help keep things like move speed consistent. I did this to my mouse input and I think that's the issue- you should only add it to things you need to.
I'm not actually sure why it behaves how it does, but for my next FPS I will be sure to completely revisit and rework my look mechanism approach.