For a bigger project, the C++ programmer is unlikely to be the level designer or artist responsible for the items in BP.
Adding items in code means that the non-programmers cannot remove components that are critical to the running of that code because they don't know why they're there.
You don't make a C++ class and convert it to BP. You create a Blueprint based on a C++ class which contains all the functions and variables which can be exposed to BP with UFUNCTION and UPROPERTY respectively.
C++ is faster than Blueprint since BP uses an emulator to call C++ code in the engine and is slower (tests have shown by up to 7x slower) and with C++, you can get hold of the parent C++ code and modify it as you need to.
C++ can be much simpler as well. In the original, now archived course, the next section is Testing Grounds and introduces behaviour trees and blackboards. In one of the modules, the Blueprint part is made up of 12+ nodes which, when converted to C++ is 3 lines long.
Blueprints, on the other hand are considerably easier to prototype with and will quickly tell a programmer whether something you're planning is achievable.
There are also scenarios where C++ is more work than you'll get benefits from; displaying UI is the biggest one of these.