You should be able to drop the file under lib/flows and then it will show up
after node-red is restarted. The assumption has always been the only files written there are put there by the editor, so the runtime knows to update its in-memory list of files. It would be fairly simple for us to add a watch on the directory to spot updates without having to restart.
As for the filename - I think in earlier versions it would append .json if you didn't specify it. That got removed a couple releases ago as a side effect of a tidy up of the storage api - not sure that was entirely intentional. Need to review it properly (along with the other library functions for Function/Template nodes etc) and make sure its doing the Right Thing.
The whole UX of saving to (and retrieving from) the library needs some work - it hasn't been touched since the very early days.
Nick