¿Por qué necesito una página recompilada cuando cambia un método que utiliza?

Tengo una página aspx que utilizó un método en una clase en la carpeta del Código de aplicación,doSomething(int[] x). Cambié la definición de la función para usar un IEnumerable en lugar de una matriz:doSomething(IEnumerable<int> x). Luego, precompilé el sitio web, usando "permitir que el sitio web sea actualizable", y publiqué el nuevo App_Code.dll. Ahora, la versión precompilada de la página muestra un error del servidor en tiempo de ejecución: "Método no encontrado".
Si también publico el archivo DLL generado para la página, "App_Web_ [página] .aspx. [Random] .dll", funciona. Entonces, ¿parece que la firma de la función está incrustada en la página compilada de alguna manera ...? ¿Por qué es esto y hay una manera de evitar este problema al cambiar el código existente?
Odio actualizar todas las DLL de mi página cada vez que cambio el código en mis clases comunes.