A challenge is how we ensure the support for customized implementation. When we introduce JobGraphStore#releaseJobGraph we actually change quite a bit codepath in Dispatcher. While we are unable to test arbitrarily customized implementation our compatibility promise is actually no more than compilation compatible.
Customer should still be required to be familiar with implementation details to figure out the fitment when they bump Flink version. This effort requires also and no extra when we support pluggable strategy. In another word, a customized support tends to hide the challenge when customer want to use their own implementation.