Network stacks are layered and even after 40+ years, on every OS I've seen, L4 (TCP) never queries nor uses any L1/L2/L3 link quality/stability/availability information when computing retrans intervals, etc. Doing that would indeed be an aesthetically distasteful layering violation, but it would enable much more optimal behavior in a lot of wifi & cell network scenarios, as you've said.
It will probably happen eventually, at least in Linux, after a few more years of commercial pressure to make it suck less.