Cascaded shift registers, 7-seg displays, PC input

But for four digits, and keeping the Arduino pin-use count to 3, wouldn't that need 2 4094s and 4 decoders? 6 chips rather than my 4?

I don't really get your argument - my way does a bit of extra coding rather than using 1 or 2 extra chips - seems like even-stevens to me.

And why a 4094 - just the same as a 595, but CMOS.