How expensive are Blueprint actors? Cheap enough for use as foliage?

It depends what it has and how it is configured. First of all you need to understand that actor is more like a container for components that preform actual function, and those components may introduce different performance weights. But component it self is just a shell for a function, and if they don’t tick can be performance free too.

Actor with tick disabled, without (functional) scene components takes nothing, other then memory. Actor with a mesh on other hand will take draw calls which tasks the CPU… so too many of them might hit performance, but if you use same static mesh that won’t move, then you can use instanciated mesh component, to render all of those with single draw call.

You can read about it here:

Diffrent components may have there own little optimizations