Прежде всего, существует много случаев, когда Sleep() неправильно используется, например, для "синхронизации" потоков или для регулярного опроса значения, которое будет выполнять функция уведомления (в Win32 WaitForSingleObject например)
Но как насчет других случаев использования? Является ли Sleep всегда злым? Если нет, то какие хорошие варианты использования для Sleep? Если да, почему почти все языки имеют какой-то оператор Sleep?
PS: Я задал этот вопрос из-за одного из комментариев другого вопроса. Там OP утверждает, что, по его мнению, Sleep следует избегать, как goto.