Running away from writing functional specifications is a common thing. We prefer to talk about them. When someone joins the team, people from various areas of the project are asked to have a chat with the newcomer and provide her some insights.
However, these discussions have a tendency to repeat themselves in time and also change in a few ways, leading to chaos.
Writing functional specifications helps. Joel Spolsky shows how in a 4-part series, which may look daunting to read due to the length, but it's basically a 30 minutes lecture and it's fun and useful.
Why don't people write specifications, even for a small tool they built, that can be reused and that can clearly state what's going on? The invoked reason is always the same: no time!
This is the Catch-22 of functional specifications: people don't have time to write/maintain specifications, because they have to spend time explaining to their colleagues how things work. And they do this, because there are no up to date specifications.