Yes, check_behaviours_and_impls is the way to go! It was named planning exactly for this case. Once you start working on there, you will notice part of the code already computes the callbacks from behaviours so we should avoid computing those things twice. So basically, we would get the behaviour data, validate it, and then check the implementations.
Notice also that once you move the warning to Elixir, you will need to add clauses to elixir_erl_compiler:handle_file_warning to make sure the warning is not printed twice: once by Elixir, another one by Erlang.
PS: Discussions related to issues can be kept in the issues themselves. :)