If a Style had no Rules, then applySymbolizer is never called. This is a problem because:
(1) applySymbolizer is the only place where, if a symbolizer is a hash of other symbolizers indexed by geometry type, the appropriate latter symbolizer is chosen and applied,
but
(2) there are lots of ways to make a Style without a rule. In fact, the StyleMap code itself does this in its constructor given certain kinds of input.
Tschaub tells me that the expectation is that a Style will always have at least one Rule, but if this is the case, then there's something wrong with StyleMap. In any case, there seems to be some inconsistency in the expectations of various parts of the styling code.