I didn't want to mislead people into thinking that by using Functors you would be practicing true functional programming. IMO, I don't think strict functional programming is possible in Java. Commons Functors can be used to encourage a more functional approach, but, in the end, you are still programming in an imperative language. In other words, I didn't want people to think that by using Commons Functor you could be as cool as a Haskell programmer. :-)
As far as what Graham said, I agree to an extent. The community has understood this loud and clear, and there are a number of people who fight the good fight to minimize the impact of changes. It is a continuing discussion, some components do not allow major API changes without a major release, other packages (such as CLI) change package names when they have a major release. There was a interesting discussion on the commons-dev list last week about package naming with strong views on both sides including a comparison to C#.