Потому что метод
динамичный, а не статичный.
По идее должен вызываться так
$myObject = new CIBlockElement;
$myObject->GetList();
Почему так вызывают?
Потому что всем (по****) не слишком важно. Главное работает, потому что язык позволяет так делать. Вызывать динамичные методы, как статичные.