Both Elixir and Erlang do not expect the function you are calling to exist during compilation time. However, if a module has been required, we could perform such checks because then, by definition, it is available during compilation time.
The idea of this feature is to check if a function actually exists when compiling code and the function being called belongs to a module that has been required.