Extra points for the recruiter if they write something indicating why I would be a good fit - only happens rarely.
Also, checking back later (a year or two) to see if I am open to a change, even if I wasn't before, is OK by me. Sometimes you don't want to change, no matter what the offer is.
We developers should not complain too much about recruiters though - we are extremely lucky to work in a field where there is such high demand. Most people aren't so lucky.
I also think being contacted by a recruiter puts you in a great bargaining position: You are in a much better position to negotiate salary and benefits than if you applied directly. You already have a job, so if the offer isn’t interesting enough or good enough, you can just say no.
I wrote a post similar to this a few years ago, making the above points: https://henrikwarne.com/2015/11/22/recruiting-software-devel...