Hmmm it works for me.
Imagine I have only two points A and B that are coincident.
Run Spatial Join using the points as both Target and Join features, and JOIN_ONE_TO_MANY as the join operation.
You now have 4 points, with all of the columns from the Target feature (including a column for street name) and all of the columns from the Join features (including its street name). The four features are: A joined to A, A joined to B, B joined to A, and B joined to B. Only one of these will have a Target_FID greater than Join_FID. This is the only point you want to keep (i.e. select all of the points with Target_FID < Join_FID, and delete them). You now have one feature with two fields, each with a street name.