Yes, that was the idea, basically to create the superfluous pins so that the automatic pin creation could be used, and then to delete the unwanted pins, either manually or through SKILL.
The latter would be relatively easy to do, for example, the
terminal objects can be found one at a time by using the SKILL function dbFindTermByName(), or something like this:
cv = geGetEditCellView()
a_terms = setof(term cv~>terms rexMatchp("A<" term~>name))
=> (db:215089524 db:215089592 db:215090640 db:215090688 db:215062840)
=> ("A<5>" "A<4>" "A<3>" "A<2>" "A<1>")
even_a_terms = setof(term cv~>terms rexMatchp("A<" term~>name) && evenp(atoi(cadr(parseString(term~>name "<>"))))
=> (db:215089592 db:215090688)
Once you have the terminal object you should be able to delete it and any associated physical shapes. E.g.
There may be more things to remove...