This assumption is allowed, as n=0 results in infinite recursion (without side-effects) which is undefined behavior:
https://en.cppreference.com/w/cpp/language/memory_model
https://en.cppreference.com/w/cpp/language/ub#Infinite_loop_...
https://en.cppreference.com/w/cpp/language/memory_model
https://en.cppreference.com/w/cpp/language/ub#Infinite_loop_...