When you control the service interface and the implementations, it hardly makes sense to have 2 distinct implementations and annotate the @reference annotation to get explicitly implementation 1 or 2.
If you need implementation 1, why don't you reference directly reference the implementation 1? Remember, that you can do something like that:
@component(service=Service1.class)
public class Service1 {
...
}
and use
@reference
Service1 service;
in your code to reference the Service1 component directly. You should do that for services which are not publicly available (or you need to make your service class public, which is not always what you want).
So in this case implementing an interface with 2 implementations is overhead, when you only want implementation 1 or 2.
But of course there are usecases, where it's absolutely the right approach to provide a service interface with 2 implementations. But these are rather corner cases, and I would not expect them to happen outside of libraries or frameworks. Sorry, maybe I should have added it to that answer as well.