"I'm drunk, I need a ride home."
"Can I stay at your house."
"$emergency"
"Hey, I really just need somebody to talk to..."
etc. etc.
I don't want to have to go through my entire contact list, individually setting people who can and can't wake me up at night. There is already a mechanism for this, it's called "human interaction". My friends know who can and can't wake me up; they know this because they're my friends.
By giving them my phone number, I'm trusting them to respect that, and only wake me up if they need to.
I'd prefer something more configurable as well -- priority list of who can reach me at any time, during daylight hours, when I'm generally open to talking, and never.
As well as a way for those with at least some level of trust (and, say, emergency services) to reach out to me directly.
Combination of Mr. Number and a pretty acerbic voicemail message ("Hi, you've reached me, don't leave a message, email me instead, if you're a good friend, feel free to text") low-techs this solution for me.
I have friends who I regularly email, SMS, and IM with. We've never explicitly discussed this, but it's pretty much assumed that sending an SMS means you want a response ASAP, an IM expects a response within a few hours, and an email can wait a day or two. Even though all three are ostensibly messaging systems, there is a social understanding that different messaging mediums have different purposes; simply filtering based on sender doesn't convey enough contextual information to make a meaningful decision.
That should be up to the other end to determine. I should not need to say `SMS wakes me up, email doesn't' when they are fundamentally the same thing. That's an implementation detail.
The right way to do this is for the other person to be able to tell the phone what they want, regardless of protocol: messages from my Nagios system at work, or family members, should awaken me. Anything else should be ignored until morning.