I think this is too convoluted because, like Estaban says, you want to keep the theming orthogonal with widget definition.

Yes I do not like it either.

But, you gave me an idea:

If we implement in Morph the followings:

Morph>>themer
    ^ themer ifNil: [self themerFor: self theme]

what would be self theme I do not really like the idea to have all the morph talking to UITheme 
theme
^ UITheme current 
is not sexy to me 

Morph>>themerFor: aTheme
    ^ self subclassResponsibility

And then in a morph we would have something like this:

SpotlightItemMorph>>themerFor: aTheme
    ^ aTheme spotterThemer

SpotlightItemMorph>>onSelected
self themer configureSelectedItemMorph: self
 

Then we could simply do pretty much what you want:

SpotlightItemMorph new themer: MySpotterThemer new.

I like this idea. What do you think?

I do not know. Now what is clear is that we need strategy as in your original design. I was thinking about that too.

Stef