Yeah the services should return IService<T> at a minimum, and the IRest*<T> interfaces if you want to call different methods for the different HTTP verbs.
It's too critical a component to attempt to abstract it out, and there's no value in it.
You should still be able to effectively hide the dependency by getting subclasses to use your own API in your own base classes.
Moving to a different host should still be easy seeing that IService<T> is effectively just a generic interface for a command pattern, (i.e no reason why you can't create an adapter to your preferred host/fx even using that interface).
Although you can still eliminate all traces of ServiceStack and the dependency entirely after the fact by a simple re-compile (after removing the IService<T> Dependency) of your base class library which should be drop-in replaceable since user services won't be binded directly to the IService<T> API (i.e. they bind to your own equivalent methods) it should remain binary compatible with the new dll.
Cheers,