While deploying Openstack on a LXD provider does entail some additional steps to ensure lxd profile nested privileges, etc, and the complications of Ceph Nautilus and Octopus not supporting directory-based block devices requiring the use of Ceph Mimic versions, I would not describe it as “the hard way”, as much as a detailed deployment process. There is good documentation in the Openstack charm guide for openstack-on-lxd.
The configuration of whether VMs have root/ephemeral storage stored in ceph or on the disk of the nova-compute unit is managed by the nova-compute charm’s libvirt-image-backend setting. Set to qcow2, it will use ephemeral storage from the nova-compute hypervisors, but set to rbd, it will use ceph as the ephemeral storage.
When you mention the default openstack bundle utilizing LXD, openstack-base bundle uses lxd for placement of API services on top of the compute/storage machines (assumed to be metals from MAAS or VMs from another cloud (openstack, GCP, AWS, Azure).