I had an idea of creating curve/surface wrapper object with DerivedMesh interface. This way all modifiers retaining rectangular control point grid structure could work without rewriting them.