You can achieve this by creating two connections with different
autoconnect priorities:
nmcli connection add type ethernet ifname eth0 con-name eth0-auto
nmcli connection add type ethernet ifname eth0 con-name eth0-ll
nmcli connection modify eth0-auto connection.autoconnect-priority 100
nmcli connection modify eth0-ll connection.autoconnect-priority 50 ipv4.method link-local
In this way NM will try first to autoactivate eth0-auto and, upon
failure, it will fall back to the link-local connection.