Is Multiplexing ever superior to Charlieplexing?
Yes, multiplexing and charlieplexing both have their advantages, and are each best suited for different tasks.  

The main advantage of charlieplexing is that it can be done on a medium-size microcontroller, driving more LEDs with fewer I/O pins, and potentially no external hardware besides the LEDs.

Now, the advantage of "no external hardware" only applies for relatively small numbers of LEDs, up until you reach the current limit of your microcontroller, and it imposes a brightness limit that multiplexed arrays do not have.  If you choose to use no external hardware, you are generally limited to driving only one LED in the matrix at any given moment-- unlike a multiplexed array where you drive a full row at a time.

Once you add external hardware to drive the LEDs with higher brightness to match that of a multiplexed array, charlieplexing loses its luster.  

First, a multiplexed array is addressed strictly by row and column; it's very straightforward to do this.  Turn on row 1, turn on all columns for row 1, turn off row 2, turn on all columns for row 2, and so on.   By contrast, a charlieplexed array is much less straightforward.  There's always a diagonal row that's useless, and I personally use look-up tables to relate between my arrays and a rectangular array where I store my data.

Secondly, and a killer, is that charlieplexing generally requires tri-state drivers.  Multiplexing, however, is performed with strict on-off binary logic.   If you have a low pin count microcontroller and want to drive a large array of LEDs, it's straightforward to use external logic chips (e.g., shift register and/or LED drivers) to control both the X and Y axes.  Most shift-register type chips don't support the tristating necessary to do the same thing in a charlieplexed array.  Dedicated charlieplexed drivers are available, but are not nearly as versatile.

Third, in a charlieplexed array, every pin that's not actively doing something is still hooked up to the LEDs through a weak ("high impedance") connection.  And while the connection is weak, it's nonzero.  Suppose that you have 25 I/O pins connected to a grid of LEDs. If you light one LED-- taking one of those 25 lines high and one of those 25 lines low, that leaves 23 high-impedance lines.  Each place that the high I/O line goes through an LED to a neutral line, there's some possibility to leak current. Not much. Maybe a microamp here or there. But with modern, efficient LEDs, that's often enough to create visible ghosting.

Fourth, it's harder to control LED brightness in a charlieplexed array.  In a multiplexed array, you can use any number of commonly available current-regulating "sinking" LED driver chips that regulate the brightness of each column separately, by using current regulation in combination with a PWM driver.  To the extent that charlieplexed matrix locations are addressed individually and use only a resistor per row or column, it's much harder to perform dot-brightness correction and full grayscale/color animation in a charlieplexed array.