Ich habe das jetzt schon mehrfach gemacht, unter anderem bei http://www.perfekt-schminken.de und bei http://www.hochzeitsfotograf-luzern.ch. Anlass war immer Google Pagespeed. Praktische Auswirkungen: Enorm, erst recht in Verbindung mit asynchronem Laden von JavaScript.
Mal zu den konkreten Erfahrungen:
Wenn man mit wp_register_script() ein Script registriert, kann man nicht nur sagen, wo es hin soll (head, foot), sondern auch, von welchen anderen Scripts es abhängt. Man kann jQuery deregistrieren und neu für den foot registrieren - wenn ein Plugin/Theme jQuery als Abhängigkeit für eines seiner Scripts listet und sein Script im head lädt, dann lädt auch jQuery im head.
Manchmal gibt es ja durchaus Gründe dafür, JavaScript im head zu laden. In der überwiegenden Zahl der Fälle, denen ich begegnet bin, funktionieren Scripte aber auch völlig problemlos im foot. Aber dem Autor des Plugins/Themes ist die Problematik vermutlich nicht bewusst, wp_register_script() hat head als default und dann landet eben alles im head. Trotzdem sollte man sich ungefähr angucken, was die Scripts so tun, bevor man sich die Mühe macht, sie in den Head zu verschieben.
Wie kann man nun verschieben?
1) Seltener Glücksfall: Das Plugin selbst bietet eine Option, sein JavaScript im foot auszugeben. Also erst mal die Plugin-Optionen checken.
2) Man schaut sich an, welche Scripts ein Plugin registriert und hängt diese - beispielsweise aus der functions.php heraus - in den foot. Das ist nicht so simpel. Wenn das Plugin konform zum Codex entwickelt wurde, findet man die entsprechenden Stellen im Code natürlich über die Suche nach wp_register_script(), beziehungsweise das Ergebnis davon in $wp_scripts. Es gibt aber auch Plugins, die ihre JavaScripts einfach per echo irgendwo - sorry - hinrotzen. So was habe ich auch schon gelöst, aber eher "brutal" mit ob_buffer(), DomNode und Xpath. Schließlich will ich das Plugin selbst ja nicht verbiegen.
3) Gute Hilfe leistet auch das Plugin bwp_minify. Es wird aber alleine in der Regel nicht reichen.
Fazit: Je mehr Plugins, um so mehr Ärger, wenn man JavaScript in den Footer verschieben will. Die Upgrade-Sicherheit ist allerdings höher als man angesichts der Komplexität der Eingriffe erst mal vermuten würde.