I think we're getting lost in the detail. Beyond dispute are two facts:

   1. BINARY is a valid datatype in dynamic columns.
   2. JSON cannot represent binary data.

It follows that:

   COLUMN_JSON() cannot (correctly) represent all dynamic column values.

So I ask the question is:

    What *should* COLUMN_JSON() do when a dynamic column contains BINARY values?

When I file a bug report, I like to give an expected result. I don't know what it is in this case. Every other decent JSON encoder errors on such input. Is that what Maria should do?