There is no reason why physics should depend on the frame rate, and this is clearly a bad design.
I once tried to understand why people do this. I did a code review for a game written by another team in the company, and I did not see it from the very beginning, but they used a lot of hard code 17 in their code. When I started the game in debug mode with the FPS shown, I saw this, FPS was exactly 17! I look at the code again, and now it’s clear: the programmers suggested that the game will always have a constant frame rate of 17 FPS. If the FPS was more than 17, they fell asleep to make FPS exactly 17. Of course, they did nothing, if the FPS was less than 17, the game just went crazy (for example, when I played 2 FPS and drove the car into the game, the game system warned me: "Too fast! Too fast!").
So, I am writing an email asking why they hardcoded this value and used it in their physical engine, and they replied that in this way they simplify the engine. And I replied again: “Good, but if we run the game on a device that is unable to use 17 FPS, your game engine works very funny, but not as expected. And they said they would fix the problem until the next code review.
After 3 or 4 weeks, I get a new version of the source code, so I was very interested to know what they did with the FPS constant, so the first thing I do is search for the code after 17, and there are only a couple of matches, but one of them doesn’t was what I wanted to see:
final static int FPS = 17;
Thus, they removed all of the hard-coded value 17 from the entire code and instead used the FPS constant. And their motivation: now, if I need to put the game on a device that can only perform 10 FPS, all I need to do is set the constant FPS to 10, and the game will work smoothly.
In conclusion, I'm sorry to write such a long message, but I wanted to emphasize that the only reason someone would do such a thing is poor design.