Thanks David for the quick review. I don't think there is any issue.
a) I thought to put the functions in lang/externallib.php, but I had a doubt that maybe I should not add anything there. I don't want to add anything to the lib/externallib.php which is a lib and not an external class container. I thought it was ok to have the file in the webservice folder. I checked the subsystem, core_webservice is correct. It's also how it's been used previously.
b) I thought about changing the language, but I think it's going to be pretty rare that a user want a language different than the one he's using in the interface. We can add it later thought.
c) for current_language(), it's been used in both test function and external function, and as the user is the same the result will be the same, it should not fail. (PS: the unit tests test the external functions, not the web service functions)