Quick question: PlayerController vs Player blueprints.

The huge difference is that when implementing the inventory system (with items) in the controller and you would change the pawn you are possessing, that pawn would also get your inventory, while the original one would loose it, (one controller can only posses one pawn), while if it’s on the pawn any controller or pawn logic could interact with the inventory items.
A better example would be that each character in a squad can do a number of actions per turn. The character you currently set the actions for are being controlled by the controller. If the number of actions where in the controller you would only have one set of values. Also if different pawn types have different actions, tank with fire cannon, a character with duck. If you implement this in the controller rather then on the pawn, your tank would know how to duck, and your character could shoot a non existing cannon.

Simply put a Controller is meant to controll, it is supposed to feed input and interaction to the pawn, so that in itself can handle the knowledge of itself and what it can do.

Is what I recon.