It can obviously be learned, but it's something lots of people have trouble with. I was probably in my teens before I finally got that memorized enough to keep them straight. Lots of things happen at 11:59 PM (due dates being the most prominent example) because it's less potentially ambiguous than 12:00 AM the next day, even though it's functionally the same thing.
Noon is also not "12:00" - it is the infinitely small moment at the strike of 12:00. Instantaneously it becomes post-meridiem. 12:00:00.0000000000000000000000000000001 is after noon.
I do enjoy though where systems have to deal with 'weird' days. I believe in the UK the rail ticketing system works on essentially a 26h day - that is to say if you buy a ticket at on 5th November, it will be valid until 04:00 on 6th November, so in some sense the hours 00:00-04:00 belong to both days.
Trying to find the source again but not having success.
Bias. Most people can. I'm in the UK, too.
You're right that by convention noon is assigned a pm tag and midnight is assigned an am tag. But midnight, when the calendar date changes, is confusing enough to people that e.g. airplane departures will be scheduled for 11:59 pm rather than 12:00 am, because there's no ambiguity about when 11:59 pm will happen on Wednesday, whereas it isn't clear when midnight will happen on Wednesday -- technically, if it's Wednesday, midnight already happened on Tuesday night.
It is far more common for people to end their personal day after midnight than it is to begin it before midnight, so the convention directly contradicts the way pretty much everyone views "the day".
I personally enjoy using 24-hour clocks on all devices I can.
Use of either mechanical displays or on computers time selecter widgets does mean that 24 is not shown anywhere,