Generally, in 99.9% of situations, I'd agree.
I'm going to be a contrarian though, and say that there is at least one valid use case for this in that you can specify a set of behaviors to happen on an arbitrary frame in many different library symbols without those symbols necessarily needing to define their own class. I'd say the limit to this would be something to the effect of:
import complete.as
// inside complete.as
this.dispatchEvent(new Event(Event.COMPLETE, true));
this.stop();
// Note : dispatchEvent and stop are
// the only function calls I'd feel
// comfortable putting on a keyframe script.
This is especially handy if the clips in question don't need to (or cannot) share a relationship in an inheritance tree, but they all require a certain specific set of code to execute on a given frame. If you keep that code in a separate .as file, and then need to change it later (maybe to add or remove that dispatch call), you don't have to track down every library symbol and modify them manually. Just modify the included .as file.