I don't know much about search, but probably every software engineer should take some physics classes as well. Just to get used to that sort of reasoning, which is perfectly valid in a lot of circumstances.
I started out as a physics major. I remember the first time I had to do problem sets using the small-angle approximation or taking the first two terms of a Taylor series and dropping the rest.
"Here's how you solve it: the angle of the pendulum from vertical is sin(x), which will always be small, so substitute x..."
"Wait, you can't do that! sin(x) isn't equal to x."
"For the purposes of this problem set it is..."
I had a lot of trouble with this when I first started physics. I was used to thinking of mathematics as Platonic Truth, the eternal mysteries of the universe rendered absolute. But it's not - it's just a model, and it's a model that we use because in most cases it approximates reality pretty well. Contrary to the advice of many primary-school math teachers, sometimes it only matters whether you get the right answer rather than whether your reasoning makes any sense.
I kind of agree and disagree with that at the same time. Yes, doing approximations like that is perfectly fine when you are looking to solve a practical problem and can observe that the solutions you found actually works. When you need guarantees though, I would like a rigorous derivation. Taylor approximation is fine, you can derive error bounds from that, and so on. Obviously, this might get complicated, but what do we have computers for? They should help us with that.