Not sure about tutorials, Epic had some on the technical aspects of how to use those, but I imagine you’d be hard pressed to find any that will go into general compartmentalization principles in programming, i.e. when to use them.
Ideally, you would plan your systems in advance and lay out what functionality to place in what classes or components, though admittedly, Blueprint is a great tool to do just that - plan and prototype your game logic and later either refactor and reorganize (e.g. into components) or rewrite in C++ code.
In general, while still learning and especially when working on a project with no clear development path, you will frequently find some elements of your gameplay logic outgrow in complexity what you initially anticipated, at which point moving them into their own components or classes is the best approach, both, in terms of reusability (same code for several types of actors) as well as for clarity (e.g. it is that much easier to manage / debug / modify / extend a “Health System” component in your character, that organizes all variables and functions related to that aspect, than it would be to hunt those down in the base class which at some point would grow into a big pile of …everything).
Blueprint reorganization such as this is now, luckily, much less manual labor - thanks to BrUnO’s plugin here.