Interesting, this table has an effect in MariaDB 5.5, but not later versions of MariaDB 10.0, so even though it was marked as obsolete in MySQL 5.5 (and as far back as the MySQL 4.x manual), it still performed a function. However, it's quite an edge case, as it was never affected by any GRANT statements, only direct manipulation of the table. Since this change happened in a still-supported version of MariaDB, I will document it, as well as the related change in behavior of a blank mysql,db host field.
When it was removed in MySQL 5.6.7, it was noted that mysql_upgrade would check for this table and issue a warning about it being deprecated if it was nonempty.
I still think this can be removed, as there's no point in creating an unused table, confusing users, backward compatibility from 10.4 to 5.5 is not likely to be viable, it has had no effect in so long, is obscure enough that it's was barely used even when it was functional, and I can't find a record of anyone being affected by the change.
We should not remove features from MariaDB, just because MySQL removed it.
The host table is needed for backward compatibility. Please add the table back unless you can prove that this does not cause a security hole after an upgrade, for any possible case.
We don't seem to actually check the functionality of the host table in the tests anymore.
Some of the test remove some checks for other features, than privileges. For example in subselect.test, also in scripts/mysql_system_tables.sql alter table at the end looks wrong, according to what the test is supposed to do (checking host table format).
In addition any changes in behavior needs to be reflected in the manual. We need to get the behavior for the host table pre 10.4 in the KB including how to create the host table if needed.
(comment by me and Monty)