I think, the smartest thing would be to use the builtin pow~, but reverse the *connections* made to it. Because that's what I'd have to do manually now after importing a Max patch with cyclone.
An alternative would be to rename the pow~ in cyclone to something like [max_pow~] or [Pow~] and use that instead when importing.
I suppose the connection-mangling is not trivial to write and as only this one object is affected, it may be easier to just do it manually when needed. The feature, that Pd now reports overwritten classes is very useful for spotting such differences.
This is now two separate but related issues:
1) Importing max/MSP into Pd + cyclone
2) Maintaining backwards compatibility for Pd patches written in Pd + cyclone
The differences are not trivial. If it were just importing max files, then the problem is now in the translator, and the obvious solutions in my opinion are the ones you just mentioned.
But that would break files that were patched in earlier versions of Pd+cyclone in the first place. In this case, I think that [pow~] should throw a warning for a while. And because Pd has a "find" feature it will not be difficult to find instances of pow~ and change the connections, or to make a little abstraction with crossed inlet~s called max_pow~ or whatever you like and then find and replace. Cyclone could even come with another utility to do this automatically -- anyway I think backward-compatibility is the lib's responsibility, not Pd's.
Matt