Para responder minha própria pergunta - mais uma vez.
A melhor alternativa, além do roteamento via Dom0, é usar o SR-IOV. Basicamente isso cria um número de cartões virtuais (Actually Virtual Functions) que você passa para um convidado. O convidado deve carregar um driver adequado. No entanto, do ponto de vista do convidado, ele acha que está usando o cartão nativamente, como se tivesse tudo para si.
O SR-IOV fornece o melhor desempenho neste cenário.
Conseguir isso funcionar requer um kernel recente (eu estou usando 3.11.4) e uma versão do gerenciador de sub-rede com alias GUID, ou seja, versão opensm > = 3.3.14