Ok first let me explain that there different versions of the SPIClass library. There is one for AVR chips (Uno, Mega, etc), one for SAM chips (Due) and one for SAMD chips (Zero).
This seems to be a problem with the extended SPI functionality of the SAM chip (Due) not being implemented in the SPI library for the SAMD chip (Zero) but the w5100.h library believes it should be.
You probably already know this but the compiler error pertaining to the two arguments being passed to 'SPIClass::beginTransaction(int, SPISettings)' appears because of the following line of code in <utility\w5100.h> (included by Ethernet.cpp)
#if defined(ARDUINO_ARCH_AVR)
#define SPI_ETHERNET_SETTINGS SPISettings(4000000, MSBFIRST, SPI_MODE0)
#else
#define SPI_ETHERNET_SETTINGS SPI_CS,SPISettings(4000000, MSBFIRST, SPI_MODE0)
#endif
When you set the board to a non AVR board (ie Due or Zero), the ARDUINO_ARCH_AVR is not defined so the second definition of SPI_ETHERNET_SETTINGS is used. Thus the call to SPI.beginTransaction(SPI_ETHERNET_SETTINGS) in Ethernet.cpp will be passed two arguments instead of the documented single argument and look like the following:
SPI.beginTransaction(10,SPISettings(4000000, MSBFIRST, SPI_MODE0));
Now that's fine for the Due because the SPIClass class implementation for SAM chips has two implementations for beginTransmission. They are:
void beginTransaction(SPISettings settings) { beginTransaction(BOARD_SPI_DEFAULT_SS, settings); }
void beginTransaction(uint8_t pin, SPISettings settings);
Where the pin argument is the CS pin(10) (see http://www.arduino.cc/en/Reference/DueExtendedSPI for more info on the CS pin and the Due's extended SPI capability).
The problem you are experiencing is there is also a SAMD (the Zero's chip) implementation for SPI library but looking at its code it does NOT have the the extended beginTransaction method with the CS_PIN argument.
I am not sure the exact way forward for a temp fix for this. It might be possible to just copy the SAM version of SPI.h over to the SAMD version. That will make it compile but um... I don't know if it will actually work.
It is certainly a bug and should be reported.