no, normally there is no other way for a mirrored part rather than using the interpart copy.
And IMHO this also is not really a problem.
Thee is one method You can use to solve it differently.
You can create a mirror body copy within Your original part followed by a cut away of the original half.
Doing this in a traditional part You have Your original features (Ok, mirrored but with all variables, rules etc.) and a mirrored result!