Ja, im Web gibt's leider manches, was falsch (oder zumindest unnötig) ist. Du findest bestimmt auch etliche Stellen, an denen das mit %d gemacht wird
Ich könnte mir vorstellen, dass eine fehlertolerante printf-Implementierung das l einfach ignoriert.
Laut Standard werden float-Funktionsargumente sowieso in double umgewandelt, wenn kein Prototyp vorliegt, oder (wie bei printf) eine Ellipse. Eine Unterscheidung ist also bei printf ohnehin Unsinn, denn dort kommen niemals floats an. Bei scanf ist das natürlich anders, es gibt keine automatische Konvertierung von float* in double*.
Wie soll das denn hier passieren? Float wird in double umgewandelt, nicht umgekehrt.