Smartphone NFC is also orders of magnitude more complex and fragile compared to traditional RFID tokens for opening doors. Saying that NFC would "suffice" is nonsensical given that blank RFID-enabled badges run approximately $3 when you're buying in bulk.
NFC requires that everyone who uses the system (incl. cleaning staff, contractors, etc) has a compatible smartphone. It is braindead stupid to assume that all of the people who need to open doors in your building:
1) own smartphones which are 2) not iPhones 3) always charged 4) not experiencing a glitch 5) never left on a desk or in a bag
Keyfobs are a common alternative to badges and similarly cheap. Because they are extremely simple single-purposes devices, they are, like badges, many times more reliable than smartphones as access tokens.
However, most large corporations are going to use badges because 1) no need for separate name tags, 2) quick and easy visual indication of who belongs and who doesn't, and 3) you're not as likely to take it off and leave it somewhere where it could get stolen or you might not have it when needed compared to keys or a phone.
There's no reason you can't use both. I've also never worked anywhere that didn't have RFID tokens to open the doors, they can't be very expensive and they are reusable.
I've challenged plenty of people trying to tailgate (either on me, or someone ahead of me). I was not shy about calling people on the fact they weren't displaying a badge; we had leaks where I was working, and it wasn't much fun.
Most people took it well. Of the ones who didn't, all but one were non-employees trying to sneak in.
Cost. Now everyone who needs badge access _also_ must have a smart phone.
I guess you could make it a condition of employment, then you'll probably pay each employee a stipend to have a phone and that's probably more expensive per employee than a badge.
And you'll run into guys like me who really don't _want_ to carry a phone 24x7 and get surly when we're told 'it's a condition of employment'.
In a medical setting they are very important. They convey the person's title (RN, LPN, DR, Janitor) and name. That way the janitor doesn't try to pass themselves off as a doctor and offer you medical treatment. Same as why patients wear their name on their wrist, in case charts get mixed up the medical staff checks the patient's name before giving medical treatment, the patient can't be trusted to verify their name. They could be drugged, senile, or otherwise confused or just not listening. I've learned from food service people will say "yes" to just about any question without actually listening to you. "Did you order the such and such?" "yes" brings them the such and such "this isn't what I ordered."