We (in the heavily washed down food industry) individually fuse all outputs, and usually fuse the inputs in groups of 8 or sixteen. Often, each fused input group will have one PLC input that is directly wired to the fuse so the PLC can detect and indicate a blown fuse for that group.
As for the OP remark, fusing the inputs doesn't necessarily protect the PLC from voltage spikes. The input impedance is so high for most digital inputs that it would take one heckuva spike in voltage to blow a fuse.
With outputs, fuses definitely can protect the output points and even though there is an initial cost, the first time one of them saves a whole output card, they are paid for.
Fusing the inputs in groups will someteimes make it possible to continue running part of a process while working on another part, and reduce the number of devices to check when the fuse blows.
Paul