Yes, create a container without the --vm and then create an alias for the container image that is downloaded. You cannot create containers from VM images.
The two are pretty different. To turn a VM image into a container, we’d need to map that virtual disk, extract the main partition and then strip a whole bunch of packages from it. All of that is problematic as mapping and mounting partitions can exploit kernel bugs leading to a complete compromise of the host system. Some of that could be worked around using libguestfs but that’s really quite slow and would leave us with the next problem of knowing what to remove and how as that will depend on the exact OS and version in the image.
The other way around is safer as we wouldn’t need to deal with a binary disk image but the rest of the issue would somewhat remain in that we’d need to figure out what to add to turn a container into a VM image, then generate a virtual disk, partition table, format the partitions, copy the data, setup a bootloader, …
LXD in general is trying to be completely agnostic of what’s going on in the instance, so having to add a lot of logic that’s OS/distro specific would go quite counter to our design goals and would massively complexify things and make them much more brittle (a simple thing like a distro changing package name in a specific version would break it).