¿Cuándo se actualizan los archivos .pyc?

Entiendo que los archivos ".pyc" son versiones compiladas de los archivos de texto simple ".py", creados en tiempo de ejecución para que los programas se ejecuten más rápido. Sin embargo he observado algunas cosas:

Tras la modificación de los archivos "py", el comportamiento del programa cambia. Esto indica que los archivos "py" están compilados o, al menos, pasan por algún tipo de proceso de hashing o comparan las marcas de tiempo para determinar si deben volver a compilarse o no.Al eliminar todos los archivos ".pyc" (rm *.pyc) a veces el comportamiento del programa cambiará. Lo que indicaría que no se están compilando en la actualización de ".py" s.

Preguntas:

¿Cómo deciden cuándo ser compilados?¿Hay alguna forma de garantizar que tengan una comprobación más estricta durante el desarrollo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta