The hardware SPI allows you to just give a byte to the hardware system and forget about it. It generates the correct clock signals at very precise rates.
The same result can be done in software - set the CLK pin, set MOSI, read MISO, go to the next bit - but it takes a lot more processor power and therefore won't run at the same speed or the same accuracy.
The pins are fixed because it's hardware. The front wheels of your car will always be at the front.
It looks like that product does have ICSP pads, not pins. They must be very difficult to get a reliable connection. I suspect that they are used once during manufacturing on a bed-of-nails fixture and then never again.
If you have enough spare pins nearby, then it should be possible to solder fine wires from the ICSP pads to the pins (pads?) on the board edge and then cover them with glue to make sure they don't move. The re-purposed main pins would have to be left as floating inputs in the code.