I think grouping VMs in different jobs based on retention requirements or creating backup copy jobs for those VMs that require longer retention might be a bit more understandable than different retention settings for source VMs. Just think about multiple backup chains of different length present on a repository.
Moreover, as of now we don't have per-VM backup chains, so, how everything should work in terms of restore points deletion? Say, there are full backup and increments dependent on it, so, a backup server when time comes should mark blocks belonging to some backuped VMs as free? Because it would not possible to just delete a restore point due to the fact that it would contain blocks of both VMs with expired retention and VMs with valid retention.