One per second is not one per second
A display refreshes at 144 Hz, a radioactive source decays at 144 Bq, and a wheel turns at 144 rad/s. Dimensionally the three are identical: 1/s. A units library that checks dimensions and nothing else will let you add them together and hand back a well-typed, physically meaningless answer.
Classic dimensional analysis, the kind every physics student learns and most units libraries implement, sees the dimension of a quantity but not its meaning.
Hz and Bq exist as separate SI units because their meanings differ. The SI brochure is explicit that Hz is for periodic phenomena and Bq for stochastic radioactive decay, and that the two must not be interchanged. Your compiler was never told.
Kinds: what mp-units checks that dimensions cannot
mp-units pioneered quantity kind safety: every quantity belongs to a kind in the ISO 80000 taxonomy, and two quantities with the same dimension but different kinds do not mix.
The two commented lines carry the point. refresh_rate + source_decay is rejected: the dimensions agree, but frequency and activity are different kinds of quantity. You also cannot initialize a becquerel quantity from a hertz one. Everything physics permits still works: inverting the refresh rate gives a period, converted to milliseconds with .in(ms).
Kind safety comes from modeling the International System of Quantities, which sits a level above raw units. Energy and torque both come out as newton-metres; frequency and activity both come out as 1/s. A dimensions-only checker accepts both confusions; a kinds-aware one rejects them at compile time.
The Mars Climate Orbiter bug was the easy case: wrong unit, same quantity. This one is harder: right dimension, wrong quantity. Both produce a wrong answer unless the type system knows physics.
Sources: mp-units documentation: systems of quantities · SI Brochure, 9th ed., on Hz vs Bq.