When you create an Entity Manager in the client, it's not logged in.
If you don't explicitly login, but tries to perform and operation (i.e. query/save) the Entity Manager will automatically login as a Guest (assuming you allow guest users - in your app.config). Logged in, but not authenticated.
In the server the base type EntityManager will be logged in and, if the client is authenicated, authenticated as well. Even though you cannot access the Principal via EntityManager.Principal, you can do so via the Save/QueryInterceptor (i.e. this.Principal) with all the information would find in the client's EM.Principal.
Regarding your second post, wouldn't passing the Principal from the Interceptor (i.e. this.Principal) to the audit code resolve the issue? (if you wanted the code to be the same in the client and server, couldn't you pass mgr.Principal from the client as well?)
As for your last post, in my tests my local (i.e. in the client) mgr.IsClient will return true while my SaveInterceptor's EntityManager.IsClient will return false. Can you provide a simple test case reproducing the issue?