1) Daily and equal share
2) I2C preferred. addressable , acknowledge form slave , collision detection, multimaster. overall more robust bus. SPI is NOT a bus (devices are not adressable)
3) I2C is more popular and has a larger usage base. IPMI ATCA adn SMbus are massive deployments of I2C. Every compute rmother board uses I2C to read memory configuration, monitor on board temperature and voltages and much more. IPMI and ATCa channel i2c over backplanes for huge telecom and computer racks. SPI is nowhere to be seen in those applications.
4) SPI is annoying because of its operation modes and nonstandardized framesizes. At least with I2c the physical layer is completely shielded from the apps layer.
the Physical layer has collision detection, bus arbitration , multimaster operation and all the other 'gunk' on board. once you got a working physical layer you don't need to worry. its all just bytes flying across. Not so with SPI. some devices use 4 bit for this , 9 bit for that. There is no standard and everybody does as hepleases. From a code and driver perspective this is a nightmare.