To describe RESTful we can say every resource has its own URI. Using HTTP GET, POST, PUT, DELETE we can operate on these resources. All the resources are representational. Who wants to use our resources, can just use it from browser or REST client. That's the main idea of a RESTful architecture. This architecture allows services on the internet. So why does this architecture need WADL. What does WADL do that standard HTTP doesn't? Why does WADL need to exist?
The purpose of WADL is to define a contract. Contract specifies how one party can call another.
When you create webapp from scratch - you don't need contract and WADL.
When you integrate your system with the other system and you can communicate clearly with their development team - you don't need contract and WADL (because you can make a phone call to make things clear).
However when you integrate complex enterprise system with several others complex enterprise systems maintained by several different companies (or federal institutions) - then believe me you want to have a communication contract defined as strictly as possible. Then you need WADL or Open Specification. Need it badly.
People with weak enterprise background tend to see entire IT as a collection of separated web applications developed independently. But enterprise reality is sometime tough. Sometime you even cannot call or write to people developing application you integrate with. Sometimes you communicate with legacy application that is no longer maintained - it just runs and you need to figure out how to communicate with it properly. In such conditions you need a contract because it saves your ass.
Actually client generation is the minor feature of the contract definition. It's just a toy. Contract enforces bad communicators to communicate integration rules clearly. This is the main reason to use WADL or Open Specification or whatever.