Any given zone as defined in DNS can only have one authoritative source of information. You can't have the MX records for a zone hosted on one server and the TXT records (which is what SPF uses) on another server. You can delegate sub-domains to another server (you could tell the main server to delegate the 'www' sub-domain out to another DNS server, but you can't split up records for the root between servers). Essentially, what you want to do isn't possible.
If you want to keep your hosting with 1&1, there's no technical reason you can't use 3rd-party DNS provider like DtDNS.com (which I operate), DynDNS.com, EditDNS.net, etc., or your own DNS server. Just replicate your DNS records at another provider, re-delegate your domain at your registrar, and you can manage the DNS however you like. It doesn't have to be tied to the hosting provider. Just point the appropriate A records to your IP address with the hosting provider and it will work just fine.