I blame spellcheck. In many cases the most legible solution is a German-style mashingwordstogether, but spellcheck systems highlight those so people hyphenate instead.
For example, spellcheck has a curly red underline right now. But would it really look better as spell-check?
I think it would be more grammatically correct to call it "spell-check" or even "spell check" instead of "spellcheck".
Spelling check... you aren't checking spells.
At least, this is what I've been told by a very picky guy...
Spell check, no hyphen. Easiest way to figure out what needs a hyphen IMO is to google it. Otherwise, just try to avoid hyphenated words, a simpler word will often do.