В каком смысле "требует"? В первом случае идет неявное безопасное преобразование типа указателя к базовому для всех указателей типу ANYPTR. Во втором случае процедура возвращает указатель типа ANYPTR, который мы сами должны преобразовать к конкретному типу - ведь компилятор на этапе компиляции не может знать, какого типа указатель будет во время выполнения сохранен. При этом явное преобразование также безопасно, т.к. во время выполнения будет проверено соответствие реального типа требуемому.