Versioning
I came across your idea and it looks interesting. My off the cuff reaction revolves around issues over time with code + data. I can see thorny issues around maintaining and updating the code across all serialized instances. On one side the version of the code does stay with the instance, so in a sense it is self versioning. But what if over time, the function internals need to evolve (as often happens) and when you deserialize the older instance you have old code.
I have not thought very far about this, but just suggesting a case to consider.
I'm really sorry but I'm not sure I understand what you are saying...
He's complaining that one can't easily migrate functions if they're storing them in a database while wanting to update the signature
This seems to fall far out of LJSON's scope. Either include a signature version alongside your function or write a migration which wraps the function into a function which translates your new signature to the old signature