In general, reading the backbuffer at any arbitrary point in time during a frame is just a really bad idea; you'd have to look at what allegro4 does with it for every platform, which I just assume is not possible (someone correct me if I am wrong). If you look at what 'Wavy' does you'll see why it does it there. (Also, scanlines, etc.) Maybe you'd have to just request it, ex;
Code:
Screen->RequestBackbuffer(RT_BITMAP0, sx, sy, sw, sh, dx, dy, dw, dh); //will be available after a call to Waitframe(); ...or WaitDraw() ..?
I know, and I agree; but only to a point. I'd rather do the extra things using overloads, so that older scripts don't break. This is primarily because you can't expect users to know how to update a script, particularly if the author doesn't update it (and you know that they won't); and also, because sometimes changing arguments will result in quests breaking., such as Starshooter, if you recall, I had to fix a few calls to make it work on any 2.5 final release.
It won't affect older scripts if it's a different function. 2.5x was supposed to be only bugfixes anyway. I think it's pretty bug free at this point. Might as well just start from 2.60; then you only have to worry about backward compatibility with 2.50, but can add in proper features and not ones shoehorned in.