RÉSOLU !
Bien que le SET SESSION old_passwords=0;
ne fonctionnait pas dans phpMyAdmin.
J'ai téléchargé les MySQL GUI Tools et utilisé le navigateur de requêtes MySQL pour exécuter la même commande sur un utilisateur non DBO :
SET SESSION old_passwords = 0;
SELECT @@global.old_passwords, @@session.old_passwords, Length(PASSWORD('abc'));
maintenant retourné :
1 0 41
J'ai donc simplement changé le mot de passe :
SET PASSWORD = PASSWORD('my_old_password')
Et maintenant PHP 5.4 PDO se connecte à la base de données avec cet utilisateur !