I *think* that by having the DataAccess Connection object be a Remote, its stub takes care of the requirement for having all public Data methods on the client
That way your local data access object can not implement the same interface as your remote data access object. Thus it seems to me that your client has more difficulties dealing with local/remote operating modes.
What if sometime in the future you want to change your implementation to use sockets instead of RMI? I know that's unlikely to happen, but it shows your design might not be flexible enough.