If I re-create the same test scenario as you have above I get the correct grant statement as well. However when i look as some of the synchronisation scripts i have I seem to see a pattern:
When the grant statement is created with one permission per statement it looks ok (this is a table):
REVOKE ALL PRIVILEGES ON TABLE data_operations_plot FROM `local_unit`@`192.168.2.230`;
GRANT SELECT ON TABLE data_operations_plot TO `local_unit`@`192.168.2.230`;
GRANT INSERT ON TABLE data_operations_plot TO `local_unit`@`192.168.2.230`;
GRANT UPDATE ON TABLE data_operations_plot TO `local_unit`@`192.168.2.230`;
GRANT DELETE ON TABLE data_operations_plot TO `local_unit`@`192.168.2.230`;
but when the permissions are concatenated together in one statement they are wrong (this one is a view):
GRANT SELECT,INSERT,UPDATE,DELETE ON level_report_one_row TO 'localhost'@'local_unit';
GRANT SELECT,INSERT,UPDATE,DELETE ON level_report_one_row TO '192.168.1.230'@'local_unit';
GRANT SELECT,INSERT,UPDATE,DELETE ON level_report_one_row TO '192.168.2.230'@'local_unit';
regards,