Auch die AVRs laufen mit dem Code also einwandfrei mit 100kHz mit dem Nunchuk-Code, daran kann es also nicht liegen.
nicht zwingend, im I2C protokoll gibt es auch sog. clock stretching und das kann je nach konfiguration (auf die du angeblich laut arduino foren keinen einfluss nehmen kannst) vielleicht zu lange dauern

ich weis zum beispiel aus eigener leidlicher erfahrung, dass ein gewöhnlicher atmega z.b. nur clockstretching bis maximal 25mS erlaubt und dann stumpf weiter taktet (eine konvention des SMBus, weil atmel keine I2C lizenz hatte haben sie einfach den baugleichen SMBus als referenz genommen) ... aber das ist nur als beispiel gemeint, das betrifft dein problem nicht

aber vielleicht gibt es noch andere effekte die mit irgendwelchen timings zusammen hängen

(auch ein kleines beispiel: ein pic schafft es unter umständen mit dem timing im UART einen atmega ins stolpern zu bringen weil der pic die bit timings "zu exakt" einhält und der atmega das stopbit "verpasst")