(Prompted by query on clt):
If "-style" isn't specified, it defaults to the widget class (which in turn is given by the "-class" option, or, if that isn't specified, by a built-in default.)
So to determine the style used by a widget, you have to check [$w cget -style], and if that's the empty string, use [winfo class $w] instead.
This is suboptimal: Tile ought to default "-style" to the class name instead of "" (and, probably, "-class" too).