What can't Blueprints do?

First, C++ is up to ~10 times faster than blueprint, so any logic you are running that is very intense should be done in C++. This is case by case, so you can do it in BP and if you need the performance move it over.

Second, there are a number of things that BP can’t do, and they are mostly niche things that not every game needs. Also, there are other things that C++ simply has more access to. Most cases of blueprint inflexibility just need a few functions from C++ exposed to BP. Here are some of the things that come to mind:

You can’t currently create procedural geometry in BP.
Spline meshes are available in BP, but with limited ability to tinker with their properties.
You have limited access to world browser and streaming in BP(important for procedural content streaming).
Navmesh has limited exposure to blueprint(though anything that Navmesh can’t do for you can be done in blueprint with enough work).
Anytime you seriously want to change core functions of the engine require C++. IE; rendering, tools, adding new UI functionality that UMG doesn’t already have, etc.

Blueprint can pretty much handle any kind of game logic you need to throw at it. There are certain tools that it needs more power over, but generally you can get what you want out of it.