using the script level of ::oo::define (or ::oo::objdefine) command (for a mostly script level version of Itcl) I am missing a possibility/option to set the USE_DECLARER_NS flag when defining a method and there is no way to set the PUBLIC_METHOD or PRIVATE_METHOD flag for that method, as Itcl cannot use the logic for isPublic as it is implemented in TclOO right now. An additional option to overwrite that logic would be enough. I have done a quick hack in tclOODefineCmds.c TclOODefineMethodObjCmd in adding a "-use_declarer_flag" and a "-protection <protection type>" flag for setting PUBLIC_METHOD or PRIVATE_METHOD or nothing at all likewise.
With that feature I can do what I need for Itcl, but that exposes a bug with the "my" command handling when having set the USE_DECLARER_NS flag. I am opening a bug in the bug tracker for that.
I suggest implementing a new command in the namespace ::oo::define (and/or ::oo::objdefine). At the C level, you've got access to the core things that the 'method' command uses, so you can do everything they do and more. In particular, you've got TclOOGetDefineCmdContext (to work out what you're working on) and you've got TclOONewProcInstanceMethod and TclOONewProcMethod to actually make methods. (See the code for TclOODefineMethodObjCmd to see how I put these pieces together; it's simple to duplicate.)
I don't plan to add flags to 'method' in the near future, so dropping the prio on this as you do have a workaround available.
It is correct, that I could a new command in that namespace, I just wanted to avoid duplicating code, but I will use that way now, that you have answered.