Basically, I narrowed this bug to a manipulation error - the mysql.plugin table had been converted to InnoDB. Since InnoDB engine is not loaded at server start (it's a plugin), the table can't be read. Moving the .frm and .ibd file to another directory is a workaround.
I somewhat think that the system tables should be protected against any conversion to engines which aren't compiled-in - or at least, instead of crashing, write out a message to the error log and explain why the mysql.plugin table cannot be read.
Basically, I narrowed this bug to a manipulation error - the mysql.plugin table had been converted to InnoDB. Since InnoDB engine is not loaded at server start (it's a plugin), the table can't be read. Moving the .frm and .ibd file to another directory is a workaround.
I somewhat think that the system tables should be protected against any conversion to engines which aren't compiled-in - or at least, instead of crashing, write out a message to the error log and explain why the mysql.plugin table cannot be read.