Si tes scripts php sont bien faits, leur durée d'exécution est courte (< 1s). Par ailleurs, le temps mis pour ouvrir une connexion à une BD n'est pas négligeable. Donc, sans conteste, la meilleure solution est la méthode 1.
J'avais fait un test (malgré moi) avec une connexion stockée dans un singleton en php5. Avec la méthode 1, tout va bien, le script php met peu de temps à s'exécuter. En portant mon script sur un serveur en php4 (dans ce cas, mon singleton ne fonctionne plus car static n'existe pas en php4). Dans ce cas là, je me trouve dans la méthode 2 : ouvrir la connexion avant chaque requête. Ben y'a pas photo, dans ce cas là, le script met vraiment plsu de temps à s'exécuter.
Pour le coup de max_user_connexion=5, y'a moyen de le changer si t'as accès au fichier de conf de mysql (my.ini il me semble)