TL;DR: Dhruv, as usual, nailed it.
To add some context to my previous (and current and future) teachings , I believe the .contactme is a crutch, one that should not be needed, but is used as warranted. I've often said, the responsibility is on the pilot. From a pilot perspective, he is one pilot having to figure out which controller of one available, or maybe 2-3 tops in most cases, to call. A controller might be busy, or even challenged/swamped, working 15 or 20 or 25 aircraft. That's the main reason the rule is the way it is, placing the onus on the pilot.
And yes, even in the real world, it's up to the pilot to figure out what airspace he is either in or about to be in, and contact appropriate ATC. RW pilots use charts, GPS, etc., to figure out where they are and who they should be talking to. VATSIM pilots who are trying to enhance their realism experience could and should use charts, GPS, FMS, and any other available situational awareness tools available to them as well. On VATSIM, we have a plethora of situational awareness tools, including VATSpy, vattastic.com, and many, many others. Are they perfect? Perhaps not, but they are certainly "close enough". Any pilot who calls ATC and is "close enough" to being in the airspace should get service. The hobby is better and stronger for all every time there is a pilot being worked by ATC, even if it's "close enough". ATC should try to provide the best service they can to as many aircraft they can, even the "close enough" ones. Any ATC (certainly TRACON or Enroute) that turns an aircraft away because they are 10-30 miles away from their border needs some re-education. If a pilot is not close to the controller's airspace and never going to touch it, the pilot should get an explanation and good wishes for his flight/day.
Does all of this mean that ATC shouldn't make a good effort to contact pilots who are in their airspace? Absolutely not. I've often written about ways to do that.
One thing that I generally do, when I log on and see that there are people in my airspace that may not be aware that I just logged on, is send a text message on unicom that says something to the effect of: "XXX_CTR is now online, 1xx.xxx" This gets, on average, about 65% of the pilots out there who are dutifully monitoring unicom to call me. The others, I generally send another message, on unicom, directed at their callsign, that says Contact XXX_CTR on 1xx.xxx For those Facility Engineers(/Controllers) that choose to add it to their (facility's standard) alias file, it could look like
.cme Contact $callsign on $com1
I also use that process even (well) after I have been logged on for a bit, for those folks that don't call.
I use the .contactme as a last resort. It it the least realistic (the hailing attempts on unicom mirror what the RW would do on guard), but sends a clear message.
I won't reach out if I'm within minutes of logging off. If they didn't call me, I'm not going to force them to call me just so I can tell them I'm closing!
What I don't appreciate is the snide remarks that some (thankfully few) pilots will sometimes make whacking ATC for not sending a .contactme. I do generally try to gently remind them that it is the pilot's responsibility, not the controller's, to make contact. Snide remarks sometimes come, sometimes from pilots, sometimes by ATC; they should never be made, but we are all human. We should just really strive to ensure that they are rare and certainly not misplaced.
For pilots that make innocent mistakes and simply aren't aware that they should call a controller, no issues, I'm happy, workload permitting, to reach out. I've been opposed, however, to teaching students to instantly just sent a .contactme whenever someone starts coming close to their airspace. It's not realistic, which is something we attempt, within reason, to emulate.
Give a man a fish and you feed him for a day. Teach a man to fish and you feed him for a lifetime.