The problem is, that you can only call RPCs from your PlayerController as you already found out by your self. Calling it form GameState or a possed Pawn should work aswell.
I personally do not like this limitation because it restrains the possibility of modular programming.
Does anyone know if those limitations exist in C++ scripting as well?