Что касается web сервера, то ему глубоко фиолетового, с какого интерфейса к нему идет запрос. Конечно можно ограничить его слушаемыми интерфейсами и даже делать вирутуальные хосты. Но в твоей ситуации пусть живет по умолчанию, а все ограничения проще обеспечить на IPFW.NAT в свою очередь выполняет только трансляюцию адресов на конкретном интерфейсе. Судя по тому, что я могу понять, он сейчас сидит на fxp0. На xl1 тебе нужно садить другой NAT с другим сокетом для диверта.
А вот на какой из двух интерфейсов xl1 или fxp0 попадет пакет, зависит, в первую очередь от роутинга. Один из интерфейсов лучше объявить Default. На сети провайдеров и на свою сеть нужно прописать статический роутинг.
Динамически распределять интернетовский (совсем внешний) траффик между двумя интерфейсами - отдельная задача. Сначала нужно хотя бы определить критерии, по которым этот траффик нужно распределять и приоритеты этих критериев.