C'est tout simple, pour définir la commande \greek@tilde l'auteur de l'option greek a choisi cette drolerie:
\begingroup
\catcode`\~=12
\lccode`~=`!
\lowercase{\def\x{\endgroup
\def\greek@tilde{!}}\x}
Or, en français, le ! est actif, ce qui fout la merde si le français est chargé avant le grec. Il suffit d'une construction toute simple à la place pour éviter le bug:
\begingroup
\catcode`\~=12
def\x{\endgroup
\def\greek@tilde{~}}\x
Un bug report a été envoyé le 26 février à l'auteur, sans nouvelles depuis. Un
workaround a été mis dans le JMPL.
Les rapports de bug sont à envoyer à mon adresse mail (ci-dessous) et seront traités... quand j'aurais le temps. Merci de mettre la balise [bug] dans le sujet du mail.