Networked Teleporting - are we doing this right?

we are currently working on a small prototype for a VR shooting game to learn more about blueprinted networking. The Multiplayer Shootout example served as some sort of guideline for us, but couldn’t answer all of our questions.
We setup our PlayerControllers and Pawns and have a rough scene as well.
At the moment, we are struggling to get our heads around replication and when to call things where and in what role…

An issue we faced was teleporting. We had a system up quite fast, which allowed the server (host in that case) to teleport…but the client could not.
Then we worked with server side calls for the teleport function, which resulted in the server still working fine, but the client only teleported on server-side-…so the clients camera (and rest of its pawn) was left behind, while watching him from the server, we were able to see, that the client actually moved…

After some long experimentation with Multicast etc, we managed to come up with this solution:

Teleport-Request on local Pawn:

The function executes some local cosmetics (camera fade) and initiates a server-side Teleport call…but it ALSO calls a teleport itself, because otherwise the actual pawn was left behind for the client itself…

So the server-side call (on our PlayerController) is very basic:
It just forwards a call to our actual teleport implementation on our pawn.

My main question here: Is this ok? Is it necessary for us to call Teleport twice (once on the server and once on our locally controlled pawn)? It feels also like leaving some potential for de-sync between client and server, because the client shouldn’t be the one, telling the player where to be…right?

Why didn’t it work, if we only called the server-side Teleport?