¿Por qué es necesario volver a cargar el código en Rails 3?

Soy un antiguo desarrollador de PHP que aprendió Rails y Sinatra. En PHP, cada solicitud de página cargaba todos los archivos requeridos. Si cambié algún código y actualicé la página, podría estar seguro de que el código era nuevo.

En Rails 3, el código del controlador es nuevo en cada solicitud. Sin embargo, si modifico algún código en la carpeta / lib, necesito reiniciar el servidor para que los cambios surtan efecto.

¿Por qué pasó esto? ¿Tiene algo que ver con la forma en que está diseñado Ruby? ¿Rails está haciendo algunas optimizaciones para evitar recargar el código en cada solicitud?

¡Gracias

Edit: Estoy principalmente interesado en lo que sucede debajo del capó. ¿Los frameworks como Rails y Sinatra hacen un almacenamiento en caché especial para las clases? Si es así, ¿qué hacen? ¿El comportamiento predeterminado en Ruby es que todo el código se vuelve a cargar en cada solicitud? ¿Por qué necesitamos herramientas como Shotgun for Sinatra http: //sinatra-book.gittr.com/#automatic_code_reloadin)?

Respuestas a la pregunta(2)

Su respuesta a la pregunta