Entscheidung, welche WAN Verbindung genutzt werden soll, auf Grund der Dateigröße, ist meines Wissens nicht möglich. Mit pfsense ziemlich sicher nicht, mit squid weiss ich nicht, über die GUI jedenfalls nicht, vielleicht wenn du eigene ACLs erstellst. Diese könntest du wiederrum über die GUI einpflegen.
Bonding und LoadBalancing/Failover muss man vielleicht etwas unterschieden:
Bonding wird zum großenteil innerhalb eines LANs genutzt, um 2 Links zusammen zu schalten. Das können dann aber in der Regel beide Endgeräte wodurch es dann zu einer Lastverteilung/Bandbreitenverdopplung kommt.
Auf WAN Seite nutzt man hier eher LoadBalancing/Failover. Hierbei wird die lastverteilung über die pfsense gesteuert, diese schickt per RoundRobin die Daten mal über WAN1 und mal über WAN2. Und hier hast du alles schon richtig gesagt, ist das keine Verdopplung bei einer Datei sondern theoretisch erst bei 2 oder mehr gleichzeitigen Downloads. Nach außen tritts du weiterhin mit der jeweiligen öffentlichen IP auf über die du per SkyDSL oder Mobilfunk bekannt bist.
Viele Leute nutzen PPPoE auf der WAN Seite. Hier kann man eine Zusammenschaltung technisch realisieren, aber dann muss der Provider mitspielen und das meist nur gegen Geld. Das würde dann ein MLPPP sein - ähnlich dem Bonding.
Bringt dir also leider alles nichts. :(
Squid ist ja zum einen ein http/https filter aber auch cache. Ob squid nun die Dateien über SkyDSL oder Mobilfunk cacht, ist eigentlich egal. Wenn ein Client diese anfordert, kommen diese aus dem squid-cache oder eben aus dem Internet. Aber nicht alle Dateien lassen sich cachen - bei youtube ist das schon schwierig - habe ich selbst nie getestet, aber es sind eben alle "dynamischen inhalte", die schwierig sind zu cachen.
Vielleicht könntest du dir die Arbeit machen und IP-Aliase erstellen in welche du sämtliche URLs packst, die du über Mobilfunk oder über SkyDSL abrufen möchtest. Dann könntest du diesen Alias als "Destination" in den Firewall Regeln anlegen und eben den passenden Gateway dazu angeben. Aber Ideal ist das auch nicht.
Soweit ich weiss, kann man mittlerweile auch domain namen in einen alias einbinden, dieser wird dann regelmässig automatisch aufgelöst und die IP-Netze dahinter abgebildet.