I think you have to be careful here and define more precisely what you mean by ghost elements. parFEAP does not operate with ghost elements. It uses ghost nodes.
The basic idea in parFEAP is that we partition the node graph. Thus each processor owns certain nodes. In order to assemble the internal forces on a node, one needs additional nodes which are known as the ghost nodes. Nodes 1 to numpn are a processors nodes, nodes numpn+1 to numnp are the ghost nodes.
In this conception, if you think of a simple mesh sliced down the middle for two partitions, then there is a column/row of elements that split. Naively one would want to think of these split elements as ghost elements but in the traditional sense they are not, as they appear in both partitions and neither partition is flagged as owning them. To construct a concept of ghost elements, one needs to introduce a rule for deciding which processor 'owns' the element but we never do that since parFEAP is based on a node graph partition and does not need that information as all FE integral computations we perform are node related: $$\int N_A(x) f(x) dx$$.
Notwithstanding, if you keep track of the elements contributing to a domain integral then it should be possible to avoid double counting parts of the domain and also importantly not missing any parts, knowing the global element numbers is perhaps essential for this task; most likely this is most easily handled in parfeap/pmacr7.F during the partition phase.