My main motivation when creating Operate was to build on the ideas behind @unwriter's Bitcom, but to improve on those ideas by codifying protocols with a simple scripting language. So implementers don't need to implement anything. They just put data in transactions in a certain way, and using operate can load complex structured objects in a standard way defined in the code.
The fundamental approach of Operate is pretty much the same as Run, so there's no reason why Operate can't do tokens and all the things Run is doing. Run has a few more moving parts like a state cache server which means there'd be more work to do the same sort of thing in Operate. But someone could build a competitor to Run on top of Operate.