buffering digital inputs/outputs

Hi. I've never buffered the digital outputs or inputs in Arduino because I never saw it, until today. For inputs I just protect them with diodes, caps, resistor.
Reading a few projects I saw some use DM7417 or SN74ALS541 for buffering the digital outputs... but why? What would happen if I don't buffer them?
thanks

The only reason to buffer is to either increase output drive capability as is the case with the DM7417.
In the case of the ALS541, it doesn't do anything for you in terms of drive, but the outputs are able to be "tri-stated" which is another way of multiplexing. Without the rest of the circuit, it's hard to tell the intent.

thanks. The circuit is this one 20Objects - Ardcore Overview
It doesn't provide a schematic though... It uses two digital outputs(labeled in the panel as D0 and D1), they're connected to modular synthesizers

That board is crazy, it has an SN74ALS541 as a buffer, yet that can only produce
about 16mA, whereas the Arduino itself can provide over 30mA.

However if it was re-populated with an SN74ALS541-1 then it would be able to
handle 48mA.

I suppose the chip is just sacrifical really, or the OE's are used for some purpose.