I realized something. It's actually possible to make a machine system that does everything the basic system does and more, updating properly regardless of the order you build machines in, adding, requiring, and allocating power, and so on. There's just one problem: it would break any other machine-based plugins.
(Technical stuff:)
Basically the problem with DF machines is that they NEVER run a full-system check and update from scratch. They don't need to, in unaltered DF - all they need to do is add or remove power whenever a machine component is added or removed from the system, or when a power source starts/stops giving power. So any additional plugin that changes the actual power level has to do the same: only adding and removing power appropriately when it is connected or removed from the system. The problem is that the index of the machines can be shifted around when a component is broken or a gear assembly is disengaged, which makes it nearly impossible to determine when and where the machine actually needs updating.
Unless the script runs a full-system check instead and updates the power levels accordingly. Adding up all the machine components whenever something changes and resetting the system's power levels accordingly, then adjusting for all buildings that use the plugin. The problem is that the machine updating script would have to take into account ALL custom power-using buildings, which means that they would have to follow a convention, which means that trying to run it alongside, say, the steam engine plugin or any of the new custom siege engines will prevent them from operating properly.
On the other hand, writing new, compatible versions of said machines wouldn't be especially difficult.
So... What to do? Hijack the whole system, or not?