Yes I have done this a few times. Enough that I would like to have implemented it as an Add-On, but surprisingly enough, most customers have a differnet concept of how to implement it.
One of the core issues is how the rebate is calculated. If the rebate is known at the time of posting, then its easy enough to modify the system to make the entries needed, and in fact can even be done with a simple addition of a couple f G/L lines to the original sales order. But the majority of rebate systems are performance triggered, e.g, if you sell more than 1,000 of these units in 12 months, we will give you a 5% rebate. So this means at the time of reaching the trigger, you now need to retrospectively adjust previous invoices, and then apply the rebate going forward. Or just apply everything at the end of the period.
In most cases what I do is (assuming the rebates apply ti Items) create a batch process that reviews (say) the last 12 months sales of an item, and generates a Credit Memo of Charge Items against the original Sales Shipments. Another approach is to use a Blanket order to track the total quantities.
I know this is not a full answer to your question, but I hope its enough to get a discussion moving.