What would a registry of tranformation algorithms buy us compared to a module with transformation functions?
Easier registering of custom transformations. Without a registry, you'd have to monkey-patch a module.
Or users would have to invoke the module directly.
I think a convention would be enough:
Then, "registration" would require to put the module on sys.path, which it would for any other kind of registry as well.
My main objection to using an encoding is that for these, the algorithm name will *always* be a string literal, completely unlike "real" codecs, where the encoding name often comes from the environment (either from the process environment, or from some kind of input).