¿Cuál es el fiasco de C ++ iostream endl?

Estaba escuchando ungoogle talk de Andrei Alexandrescu sobre la programación D language cuando arrojó una frase sobre el fiasco "endl". Simplemente pensé que endl era la forma preferida de significar el final de una línea y vaciar el búfer para una secuencia. ¿Por qué se considera un fiasco? ¿No debería usarlo en mi código?