I would use always lxc where possible.
Only exception is, if something needs to support live migration in a cluster or if it's a really mission critical service, with super important data etc...
But even in that cases i would probably use lxc.
The biggest upside and same time downside of lxc is simply that it's not an emulated computer.
The best on that is, that it doesn't have any overhead in processing (only file space/ram overhead)
The worst on that is, that it isn't compatible in 5 years with pve 7/8 probably. Cause the system inside the container will be outdated, incompatible systemd versions and etc etc etc...
Cause the services inside the containers runs directly on your host with less privileges.
However, for me that means just that i will simply make a new container from time to time (all 2 years or so) for the benefit of, that it runs all super efficient without overhead.
Cheers