https://dart-review.googlesource.com/c/sdk/+/406200 adds a new instruction to the frontend server to differentiate recompiles that occur during a hot reload and those that occur during a hot restart. This is needed so that DDC can determine whether to throw errors related to a change that cannot be hot reloaded.
During review, a suggestion came up to perhaps use reset before a recompile to signal a hot restart. reset changes the incremental compiler so it outputs a full component. It isn't clear if we can split the full component back to its intended partial component in a way that won't break the JS bundler or DDC.
If we can, then we can reset in Flutter tools and avoid needing a recompile-restart.