Possibly just a bug in LXD (reported here https://github.com/lxc/lxd/issues/1732)
If you configure LXD to listen on *a* port with LXD init (in my case I had set "localhost:8443"), then Juju tries to configure LXD to listen on all IP addresses on port 8443 (via core.https_address = "[::]:8443")
However, that fails to reconfigure because LXD tries to apply the new configuration, but cannot bind to port 8443 because it is already running on port 8443.
I'm unsure if we should continue bootstrap if reconfiguring the listening ports fails. Because I'd expect Juju is going to fail to work if LXD does not end up configured to listen on port 8443 on the bridge that the containers come up in. (I need more testing to know that for sure).
It looks like you should be able to do "lxc config unset core.https_address; lxc config set core.https_ addresses [::]:8443". The reason it fails is because there is a bug if you use "localhost:8443". If you use "127.0.0.1:8443" then unset && set works correctly.