asymptotics only matter for large n
Asymptotic notation, by its very definitions, only makes claims about behavior 'eventually' — for n at or beyond some threshold n0. It says nothing about what happens for small inputs, and that is not a flaw to apologize for but a boundary to respect. The companion truth to 'asymptotics predict scaling' is 'asymptotics say nothing about n = 5'.
Recall that every Big-O bound comes with a hidden threshold n0: the promise f(n) <= c times g(n) only kicks in once n >= n0. Below n0, anything can happen — the supposedly slower algorithm may be faster, the lower-order terms may dominate, the constants may rule. The point where the asymptotically better algorithm actually overtakes the worse one is called the crossover point, and it can be surprisingly large. If algorithm A costs 1000 n and algorithm B costs n^2, then B (quadratic) is cheaper until n = 1000; only for inputs past a thousand does the 'better' linear algorithm A win. So whether asymptotics are even relevant depends entirely on whether your real inputs are large compared to that crossover.
The practical lesson: before trusting an asymptotic comparison, ask 'are my inputs big enough to be past the crossover?' For data that is always small or bounded, the asymptotically inferior algorithm with small constants is often the right engineering choice, and simpler too. For data that grows without bound, asymptotics become decisive and dominate every other consideration. The mistake to avoid is quoting an asymptotic verdict for a regime where it does not apply — using a large-n theorem to justify a choice at n = 10. Match the tool to the scale.
Algorithm A runs in 1000 n steps; algorithm B runs in n^2 steps. Solve 1000 n = n^2 to find the crossover at n = 1000. For every input smaller than 1000 elements, the quadratic B is actually faster; only beyond 1000 does the linear A win. If your inputs are never larger than a few hundred, A's better Big-O is irrelevant.
Find the crossover point; asymptotics only govern inputs beyond it.
Big-O's threshold n0 means asymptotic claims are silent about small inputs. If your data never grows past the crossover, the asymptotically worse algorithm may be the correct choice.