How is the current limited through the LEDs in this LED matrix design?
I checked a few datasheets:


74HC595 from NXP
74HC595 from TI
General HCMOS family specs from NXP


And I nowhere saw a current limit specified. The only thing that is specified is that you must not exceed 35mA output current (absolute maximum rating). But it doesn't say the chip itself limits the current to this value.

Now, I found another spec from TI:


Input and Output Characteristics of Digital Integrated Circuits.


It gives (among other interesting things) the output characteristic of two 74HC chips
(74HC00, and 74HC240 whose specs are closer to those of the 74HC595), and we can indeed see that you can easily get more current than the specified 35mA max. Likely, the current will be limited to about 80mA (but it certainly isn't very accurate and may depend a lot on temperature and chance):



Anyway, it will be much more than the 20mA you'd like to see in your circuit. There is nothing, apart from the 595 internal resistance, really limiting the current in this circuit.

So, the 595 and the LEDs are driven above their specs. For the LED, it is certainly less of a problem since there is multiplexing. So you can tolerate higher than 20mA if the duty cycle is low enough (but this often isn't clearly specified for basic LEDs).

But for the 595, if you're driving a fully lit panel, it can become a problem and may damage the chip in the long run.

This design is bad, m'kaaayy.