Well I'd argue converting from float to UInt16 is at least cleaner than doing the weird bit shifting and all that. And has more precision ultimately. Edit: However since you've already implemented the conversion, I suppose having the 16 bit option can't hurt. The floating point would be a nice addition ofc.
While we're at it, I'm wondering another thing, does ffmpeg have dithering that can be activated to convert to the target pix_fmt? It seems that in the 8-bit mode, After Effects already delivers dithered data, but in the 16 (well, 15) bit mode, it does not appear to do any dithering. And given that output formats like ProRes or HEVC aren't full 16 bit anyway, it might make sense to have an option to activate dithering for 16+ bit input formats to reduce banding for very high dynamic range and low noise content.
So for example for ProRes the the 16 bit or floating point content would be dithered down to 12 or 10 bit or whatever the encoder does.
Dithering would be bad for any scientific applications but good for anything artistic, so would be nice to be able to choose. AVISynth for example provides three options: No dithering, ordered dithering and Floyd-Steinberg dither in its ConvertBits() function.
I wouldn't expect you to implement such dithering yourself of course, just asking in case ffmpeg already offers that.