From my experience : most of the time (not all the time), constraints above a fix occur when there will be a communication transfer after said fix. Constraint is the result of a Letter Of Accordance (legal constraint for the controller). Changing the level over/abeam the fix means a co-ordination.
Missing a level constraint "abeam" after a direct can stuck next sector for the next hour : "If you can't send me the traffic at the right level, then send it on the right track"
Level constraints "within x minutes" will be delivered due to traffic.
In this case, changing the track by a direct or a vectoring might induce a "no more rate restriction" message.
Generally speaking, I reckon keeping the rate until said otherwise is a good way of doing things. Even though this procedure doesn't seem to be very instinctively, naturally, ergonomically easy to apply (if I understand fireflybob).