I haven't taken the time to reproduce this particular issue, but I think the problem is not limited to stemming. Assuming you aren't specifying particular field names in your query, the problem can be summarized like this:
Solr (at least as of 1.4) is in danger of producing weird highlights whenever the analyzer for your index's default search field differs from the analyzer for your highlight field(s). The HighlightComponent takes the Query object parsed by the QueryComponent (which was tokenized according to the default field's analyzer) and applies it unchanged to the highlighting field (which will be tokenized according to a different analyzer). The same word may be tokenized differently by the two tokenizers, with results like missing highlights.
I'm not sure what the best solution is here. I've proposed an option that can help in some cases at SOLR-1910. Another possibility would be a new hl.useHighlightedFieldAsDefaultField highlighter option, which would create a new Query object (based on a separate analyzer) not just once at the start of highlighting, but separately for each particular field that's getting highlighted.
A complication for either approach is whether you should do anything special to parts of the query that do specify a particular field (e.g. "features:electronics").