Cuando (no) abusar de NSUserDefaults

Me pregunto para qué sirven las pautas:
1 - con qué frecuencia puedo leer NSUserDefaults
2: cuántos datos puedo almacenar razonablemente en NSUserDefaults

bviamente, existen límites para la cantidad de NSUserDefaults que se puede usar, pero tengo problemas para determinar qué es razonable y qué no.

Algunos ejemplos entre otros:

Si mi juego tiene una opción para que la computadora sea uno de los jugadores, usaré NSUserDefaults para guardar ese valor booleano. Eso está claro. ¿Pero también es razonable acceder a NSUserDefaults durante mi juego cada vez que quiero saber si la computadora es un jugador o debería usar una variable de instancia para eso? Supongamos aquí que necesito verificar ese booleano cada segundo. ¿La respuesta es la misma es 100 ms en su lugar? ¿Qué pasa con cada 10 s?

Si mi juego tiene 50 objetos en movimiento y quiero que se almacenen sus posiciones y velocidades cuando el usuario cierre la aplicación, ¿NSUserDefaults es un lugar razonable para almacenar esos datos? ¿Qué hay de 20 objetos en movimiento? ¿Qué hay de 200?