IsLocalPlayerController(); will return true for any controller that has Authority on the local instance of the game only.
In Multiplayer - clients only have their own Player Controller, and the Server has the full list of Player Controllers. IsLocalPlayerController() will return true on the server, but ONLY for the Server-Player - not Clients connected to it. If you’re game is not Multiplayer, then the only player has Authority, and therefore the function will return true.
The reason AController::IsLocalPlayerController() returns false, is because ‘AController’ is not the same as ‘APlayerController’. Look at APlayerController.cpp and you will see the code is quite different.
If however, you look at AController::IsLocalController() - it too will return something different.