Pcg is its own thing but the baseline issue is the same.
You don’t use BPs because of cost associated with it all. (Mind you, you probably can, its just bad practice and a bad idea).
To get a BP up and running you need an AActor. And its got tick, plus whatever else you code in it, then possibly skeletal mesh.
Once you spawn up about 100 instances or so you’ll start to dip into performance quite heavily. And if you incorrectly use tick or even just have them set on the incorrect group you pay computation costs that shouldn’t even exist.
Compare this to a regular HISMC that you can even self manage without PCG. All it stores is a transform value for each instance along with the mesh index that it uses. No tick, no issues. Plain and simple. And it can have billions instances because if it’s simplicity.
The grass on landscapes is/was its own thing with its own pipeline that actually outperforms both HISMC and foliage. It was not the best it could be (in fact there was much it left to be desired like anything epic made), but it did offer some somewhat reasonable improvement if you had to use landscapes and couldn’t just do what you should always do and use static meshes instead.
Second to landscape grass is the foliage tool.
That works a little faster than HISMC because of pooling and aggregation. Since it was designed to work on landscapes it clustered (back in 4.18 at least) the rendering up to different blocks, making them load and stream in faster with less drawcalls.
Then you have the regular hierarcical instanced static mesh component; There is no real clustering here. Each instance is subject to its own calculations for occlusion which is costly and sometimes actually demented when used for foliage - but it is what is avaliable and therefore what everyone uses.
PCG grass is slightly faster than a regular HISMC probably - but what PCG really does is it allows you you pick and choose placement much better and without having to create your own tool to do so like it would otherwise be when dealing with a regular HISMC.
With all that in mind:
The engine does a ■■■■ poor job at grass - look up some ghost of tsushima dev talks for how grass should be made and actually optimized.
Take that further. The storage of grass data should really just be a flat file of sequential numbers rather than meshes in the first place (I’d link you to a video explaining this, but need to find it. Will edit if I do).
And then you have the obvious issue with foliage itself (trees brushes rocks etc).
You don’t want these to be blueprints because of what I wrote above - but if you do still want to make them interactible, that’s when you create a replacement system similar to my plugin ( DynoFoliage: UE4 Interactive Foliage ). In essence, the immidiate area around the player swaps out instances off from foliage on the fly with something else (a BP of said foliage that has an SKM of said foliage for instance).
That way you have instances and counts that aren’t necessarily proibitive while still being able to support AAA style interaction.
With regards to re-using the UI/Info inside the landscape grass node, and its assets - they are exclusive to it because of the special rendering the engine does with them. Unlike foliage they were specifically designed to he kept and keyed separately making things even more confusing. I do agree with you that they should have re-purposed these to keep tutorials and old info somwaht relevant… at the same time as you can see by the book I just wrote in a simple jab to the surface of this subject there is likely 0 point and everyone should really come up with their own instance placement system that works for their project without relying on Epic… (matter-of-factedly if you make a .usf to do the grass right you save so much on performance with the same tris count that you can then do crazy things such as 3b tris meshes even with-out Nanite existing)…
Anyway. Hope this explains some stuff you or others may not have known or realized…