Canvas widgets are very useful thing to use as base for
megawidget construction. Given that canvas can contain
embedded windows, it can be considered container widget
just like frame and toplevel.
But because there is no -class option, options database
cannot be used do control behavoir of canvas-based
megawidgets, without enclosing canvas into frame which
sole purpose to provide class. This makes application
widget tree overcomplicated and hamper use of Tk
introspection features.
Canvas widget has very few global option by itself, and
they are seldom globally changed using option database.
Even better is to allow certain groups of canvas items
to have its own database class within parent canvas
namespace.