Talvez seus problemas estejam relacionados à configuração da VM? Em um caso mais simples, onde tenho outro roteador na minha rede, o nmcli funciona como esperado. No meu caso, a rede é 192.168.1.0/24, a rota padrão é 192.168.1.1 e há outro roteador em 192.168.1.9 que se conecta a outra rede 192.168.8.0/24.
nmcli c modify eth0 +ipv4.routes "192.168.8.0/24 192.168.1.9"
nmcli c up eth0
Isso produz o resultado esperado no ip route:
default via 192.168.1.1 dev eth0 proto static metric 100
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.5 metric 100
192.168.8.0/24 via 192.168.1.9 dev eth0 proto static metric 100
e em nmcli c mostre eth0:
IP4.ADDRESS[1]: 192.168.1.5/24
IP4.GATEWAY: 192.168.1.1
IP4.ROUTE[1]: dst = 192.168.8.0/24, nh = 192.168.1.9, mt = 100
Isto está no fedora 24.