Personally, I find underscore as easier to scan over as a space so I use it for spaces and hyphens for situations that I want a hyphen. Hyphen also has certain other meanings where underscore typically doesn't. For instance, I use ISO format dates (I work in IT so I got in the habit, I can elaborate on the advantages of this format if necessary), which is yyyy-mm-dd, if I used hyphens for separating other elements this would get confusing.
Using a mix gives you more versatility. If I wanted to add more elements to the filename (such as a sequence number), I'd likely separate them with underscores, this helps my eye scan over the elements very easily. Say something like 2009-08-02_032_hydrostone.nef, right away I can see the date, sequence number and descriptive text.