Repository: flutter
Issue: Going back to the previous route, images should not be redrawn
Labels: framework,f: routes,a: images,has reproducible steps,P3,found in release: 3.7,found in release: 3.9,team-framework,triaged-framework


**As shown below, when you go back, the previous route is not `re-built`, but some images are redrawn.** 

|![image](https://user-images.githubusercontent.com/26625149/230574180-e0f2869b-fb9a-4017-9562-15f5f069b111.png)|![image](https://user-images.githubusercontent.com/26625149/230575119-7a324c13-ff4e-4b56-ac89-e7758915529b.png)|![image](https://user-images.githubusercontent.com/26625149/230575145-2d11b3fa-d6d1-4948-beb5-988d314d46a2.png)|![image](https://user-images.githubusercontent.com/26625149/230575202-0fcfa4fd-ea40-4e1e-968a-1938fa3c3c9f.png)|
|:----:|:----:|:----:|:----:|
|frame #1|frame #2|frame #3|frame #4|



## Steps to Reproduce

<!-- Please include full steps to reproduce so that we can reproduce the problem. -->

1. Get test code: `git clone git@github.com:0xZOne/image_cache_demo.git`
2. Execute `flutter run`
3. Follow the steps in the video below ('Asset Image' -> 'Open route' -> 'Go back!')
4. Tap on the 'Go back!' button and observe the result


https://user-images.githubusercontent.com/26625149/230573681-56d6e6c0-9178-4923-88cb-f539fb707028.MP4

(Whether to turn on the `precache` switch is irrelevant)

<details>
  <summary>flutter doctor -v</summary>


<!-- Finally, paste the output of running `flutter doctor -v` here. -->

```
[✓] Flutter (Channel stable, 3.7.10, on macOS 13.1 22C65 darwin-x64, locale zh-Hans-CN)
    • Flutter version 3.7.10 on channel stable at /Users/zero/fvm/versions/3.7.10
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 4b12645012 (3 days ago), 2023-04-03 17:46:48 -0700
    • Engine revision ec975089ac
    • Dart version 2.19.6
    • DevTools version 2.20.1
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

Checking Android licenses is taking an unexpectedly long time...[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
    • Android SDK at /Users/zero/Library/Android/sdk
    • Platform android-33, build-tools 33.0.2
    • ANDROID_SDK_ROOT = /Users/zero/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14C18
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)

[✓] VS Code (version 1.76.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.60.0

[✓] Connected device (2 available)
    • 艾尔玛的iPhone (2) (mobile) • 00008110-001635A42183801E • ios            • iOS 16.0 20A362
    • Chrome (web)            • chrome                    • web-javascript • Google Chrome 111.0.5563.146

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!
```

</details>


<!--
      Consider also attaching screenshots and/or videos to better
      illustrate the issue.

      You can upload them directly on GitHub.
      Beware that video file size is limited to 10MB.
-->