In change_master() (sql_repl.cc), there is this code:
This code is incorrect. The variable relay_log_purge is global, but
change_master() is per-master-connection.
This means that if one CHANGE MASTER needs relay log purge, and another CHANGE
MASTER does not, they will overwrite each other and relay logs will be handled
incorrectly for at least one of them when the slave threads start.
There seems to be no code to handle this correctly per-connection.