CHANGED_SIT is intended to be thrown in conjunction with CHANGED_LINK but CHANGED_SIT would only be thrown in the prim that the actual change has taken place. The advantage of this is that sit target scripts no longer have to track avatars to avoid permission mishaps.
The trouble is that when you have an object with mutliple sit targets it's impossible for any one script to know what has changed (atleast not without pooling there information first). Considering how complex of a script setup needed to solve this problem it would be easier on sims if this were implemented.
Did I mention this will probably break all objects in SL that use == instead of & for evaluating the paramater from the changed event? Which is likely 95% of all sit target scripts in SL?
(I say serves them right for not treating it as a bit feild).
The other obvious solution is to imlement something like what is used to passing touchs. In this case llPassChangedLinkSit(TRUE/FALSE) the default being true. When FALSE the CHANGED_LINK triggered by a sitting avatar would only be triggered in the prim the avatar sat on. This solution wouldn't break any existing scripts (and the existing scripts could be retrofitted).