The more I think about this the less I understand it. Except that I would have used 'in' (suspect there is a British link here!) in the original sentence.

As for Mav's examples:

1. "Two cars and a bus collided in the High Street today"
2. "Two cars and a bus collided on the M4 today"
I can (just!) imagine "Two cars and a bus collided on the High Street today" but "Two cars and a bus collided in the M4 today" creates an alarming mental picture of all the vehicles ploughing into the road surface itself.
Why is one substitution possible and not the other? Is the M4 (and other motorways like it) a special case because it is so big it is not merely a road but a geographic feature? Possibly - I have the same reaction to "a crash in the Appian Way"...

3. "Seventeen shops in central Croydon closed last year"
4. "Seventeen shops on Pembury Hill closed last year"
in a town, on a hill (and if Pembury Hill is the name of the town, in can be substituted without problem.
Not sure these are really relevant to the initial problem which seems to be about location relevant to roads.

5. “The car was standing at the corner outside Woolworths”
6. “The woman was standing on the corner outside Woolworths”
"On the corner" seems to me to imply a location behind the kerb/curb (I was going to say on the pavement/sidewalk, but as a building can also be on a corner, it goes further back than that.)
"At the corner" is vaguer - could refer to vehicles on the roadway itself, people or things on the pavement or buildings set back from the pavement.

Which really messes up any theory I have as when I started this post my basic theory was 'on' for big roads that double as huge vague locations, 'on' or 'in' for smaller roads with more specific locations and 'at' for specific detailed locations such as where two roads meet. And now 'on' has snuck up in an evem more specific meaning...

..I remember why I stopped coming here. It does my head in...