Dependiendo de la cantidad de datos que van a lo largo del bus, y si hay "conflictos" de ID de dispositivo, o datos que se transfieren al mismo tiempo, no hay problema para colgar todos sus dispositivos en un bus. Para eso fue diseñado I2C.
Para distribuir la carga, usar 2 o 3 buses I2C puede facilitar las cosas (por ejemplo, mantener diferentes sistemas separados) pero puede significar que tiene que hacer lo mismo 3 veces en el software. Puede hacer algo como usar un bus para la transferencia de "alta velocidad" de gran cantidad de datos (por ejemplo, a / desde un dispositivo de almacenamiento) y otro bus que funcione mucho más lento para realizar actividades menos críticas, como leer un sensor de temperatura cada segundo o encender un LED. on / off.
El I2C de bit bit que usa pines GPIO es un "último recurso" ya que generalmente es mucho más fácil usar el dispositivo I2C incorporado, y la mayoría de los procesadores tienen cosas como controladores de interrupciones y DMA para hacer el trabajo mucho más fácil, automatizar el transferencias, ahorrar carga de procesador / sobrecarga de software, etc.
Es mucho mejor que las comunicaciones se manejen mediante interrupciones en lugar de intentar hacerlo mediante GPIO + esperas / temporizadores, etc., especialmente si tiene mucho que hacer / muchos datos que mover.
Editado para agregar: También puede ser útil usar un bus para dispositivos que necesitan un cambio de nivel (los dispositivos EG 5v se conectaron a un micro de 3.3v en un bus, a dispositivos nativos de 3.3v en el otro autobús)