This seems much more complicated than what languages like Haskell and Ocaml give one, which is a way to express functions as infix and association. It limits what one can do, so maybe that is where something like OMeta shines, but I’m not sure subclassing is the best way to go about this.
When it came out, I followed OMeta pretty closely, as I thought it was a truly interesting project. Unfortunately, it never really took off or gained any real traction. I think part of this is due to the sheer complexity of implementing parsers for real programming languages.