The VariableOutput trait allows users to select hash output size at runtime. Initially it was added for completeness sake, but it does not look like it's used in practice.
Arguably, all reasonable use cases can be covered by output size selected at compile time, so it may be worth to completely remove the trait and associated types from implementation traits.