Re: Possible or easy?
"But two things that ARE needed, depending on where the person wishing to use an application is coming from, are functional documentation - what the available functions of a piece of code actually do, and application documentation - why you would want to use any given function."
If you have all the functional documentation, then you should be able to determine what functions you need to use to do what YOU want to do - not expect the function's authors to predict how you would use it. If that were the case, you wouldn't need the functional documentation.
Which is just another way of saying that there are different needs for different users. End users don't need functional documentation, they just need to know how to achieve what they want. Developers don't need application documentation, because they're the ones developing the application.
(And while writing the documentation before writing the application sounds good in theory, you'll usually find that what seems good in theory is too inflexible in practice. And who has the time to change the documentation? Certainly not the dweeb who wrote it and then says "I've done the hard part, now you just write the code."