I think I may be able to help answer part of your question. There's a Library of Congress Rule Interpretation to AACR2 23.2 (LCRI 23.2 "Modification of the Name" section 5) which states "For U.S. townships (called "towns" in some states) that encompass one or more local communities and the surrounding territory, ... add the term after the name of the state." And gives the following example:
151 ## $a Kintire (Minn. : Township)
So I guess there's a difference between Springfield, PA the "town" and Springfield, PA the "Township", namely, that the latter includes more than just the town of Springfield.
From: Code for Libraries [mailto:[log in to unmask]] On Behalf Of Ethan Gruber
Sent: Tuesday, May 31, 2011 11:02 AM
To: [log in to unmask]
Subject: [CODE4LIB] A "right" way for recording a place name?
I've just about completed a new XForms-based interface for querying
geonames.org to populate the <geogname> element in EAD. An XML
representation of a geographical place returned by the geonames APIs
includes its name, e.g., Springfield, country name, and several levels
administrative names (Sangamon County, Illinois). Is there some sort of
official way of textually representing a place? In LCSH, one finds:
1 Springfield (Bucks County, Pa.)
2 Springfield (Bucks County, Pa. : Township)
3 Springfield (Burlington County, N.J.)
Why 1 and 2 are distinct terms in LCSH, I don't know. The mode for dealing
with American place names seems to be "[name of place] ([administrative name
- lower level], [administrative name - upper level])". For a European city,
we find "Berlin (Germany)"
Are these examples in LCSH the most common way to textually record places,
or are there other examples I should look at?