pcpatch(n) are specialization of pcpatch type.
While this may be true PostgreSQL doesn't understand "specialization" of data types. If you cannot do as Steven suggested you do not get to leverage inheritance directly and will need to devise your own work-arounds for the capabilities that you require.
I'm somewhat surprised that what you describe works at all - mainly given that functions do not allow typemod specifications to pass through the function invocation...but alas I'm not all that familiar with PostGIS and whatever is being done does indeed seem to be working...
David J.