SystemVerilog basically fixes this with always_comb vs always_latch.
There's no major implementation which doesn't handle warning or even failing the flow on accidental latch logic inside an always_comb.