Это невозможно из-за того, как работает система слоев при построении изображения.
Изображение создается путем добавления содержимого поверх существующего содержимого, поэтому, если вы измените порядок, вы измените структура и, следовательно, построение другого изображения.
Дело не в том, что кеш "аннулирован", а в том, что кеша вообще нет. С docker точки зрения, это вообще разные изображения.