MIT actually accepts an arbitrary number of callbacks in an a-list, and has a function to call any custom operation. That is perfectly general, but perhaps too general for utility.
I don't understand the final sentence. What does "too general for utility" mean? I've found being able to add arbitrary operations to ports, depending on circumstances, to be highly useful. Sometimes, they're so useful that they get promoted to standard operations, or wrapped in procedures so that they don't have to be looked up on the alist, but the general mechanism is highly useful.