Currently it is not possible to use "copy" to duplicate a Service.
Technically a copy does not create a new instance, but is solely used to use the same Service as Subservice in multiple other Services.
As you have properly identfied, and you can see this in the properties, you always link to the same Service - it is the same object.
The only thing that happens during a copy is to create a new relationship to a parent Service.
Thus, I would agree that "copy" is possibly the wrong term for this action. It could be called "attach to parent".
The reverse actions show the same: when you "delete" a Service, it will be gone in all locations. the other option is to "remove from parent", this will only detach it from the current parent.
If you want to work in a way of templates, you can use the Universal Connector:
Prepare an xml file with the structure of the Service.
You have to add definitions to create the Service, the CIs and the relationships.
There is an example in the SOI root directory (or contact me to get further information).
You can then use this xml file and by updating it according to every situation, create similar Services in a much easier way than using the export/update/import process.
You have to be very careful though to use names/properties for the CIs that fit the correlation criteria with existing CIs in your environment.
Otherwise you end up with Services, but the CIs dont have any information flow via Connectors.
MichaelBoehm