Little tweaks are also not cheap - they’re cheap to write but a) you have to run a potentially expensive test suite / add more tests to verify you haven’t broken anything b) you have to understand and measure the problem in the first place which itself could easily take days. So actually, after those 2 years you’ve probably only landed a 1.6x improvement (1.001^5 days/week * 50 weeks/year * 2 years). Oh and your 0.1% improvement could be a win in 1 use case but a loss in others so your 1.6x improvement in one narrow benchmark could end up being a 3x slowdown in a different benchmark.
It’s basically impossible to find a pure 0.1% improvement every single day non stop for 2 years. It might amortize to that and it also depends on the maturity of the codebase (e.g. a rearchitecture might cost less and deliver more gains).