I said I wanted to control an LED matrix, not drive it.
Controlling something and driving it is the same thing in this context, you want a logic level that is under your control. You do not get this with a 4051 when you use it in that direction.
especially since the official Arduino docs ..... seem to state that it would work fine as a demux.
Yes it works fine as a demultiplexer but it is totally stupid to use this as in effect a port expander. This is because only one output can be controlled at any one time, all the other outputs float. I wish that page didn't exist because it traps beginners into thinking it is a good idea and then we have to try and pick up the piece jumping backward somersaults to think of ways to salvage a situation that would not have happened if it was done right. If you want to use a demultiplexer like this you need one with a latch on the end so that it keeps the logic level you set it at. Something like a 74LS259 works in the way I think you might imagine.
the discussion went on for two pages without any mention about how I should not use the 4051
Two reasons,
1) Multiplexing is different in that you only want one output to be active so that promotes the use of this chip from stupid to simply poor.
2) Not everyone is as good as me. (I did try to phrase that differently so it didn't sound so arrogant but I failed so I am not perfect.

)