Потому что у него есть все признаки языка программирования. Присутствует конечный алфавит (пусть и виде блоков), определена грамматика (допустимые соединения блоков). И все это используется для программирования, пусть и такого узконаправленного. А что до назначения - то язык программирования не обязан быть общего назначения.
Потому, что безразлично, в какой именно форме записан алгоритм. Любая формальная система записи алгоритмов по определению является языком программирования (даже если она не реализована в виде компилятора/интерпретатора). Так что графическое представление ничем не хуже и не лучше линейной тестовой записи.