
An idea that I had a long time ago (noting the copyright statement, it was in 2004) is contained in svg-profile.h. The idea was that every verb could contain an Inkscape::SvgProfile object. Then you could adjust which verbs were visible (active) based on the SVG profile. The header file basically implements a fancy bitmask that can grow easily. The idea was also to make everything in a way that could be built into the static verb arrays also.
Looking through the code today, there is a little bit to be desired, but I think it works. I don't believe it's ever been checked in in a state where it is linked into the build.
This doesn't solve many of the SVG feature analysis issues, but it does solve some of the UI issues in 'limiting' Inkscape features so that you don't create invalid SVG.
--Ted