Jesse,
The most common use case here is folks that don't store artifacts within Jenkins itself. Instead we deploy artifacts to a Maven repo (Artifactory, Nexus, Archiva). Since artifacts are versioned under maven, linearity is maintained by version in the repo rather than directly by branch with Jenkins. So having separate builds for separate branches is more a pain than an advantage. We don't need linearity (that comes for free on the repo side), we're looking free ourselves from the churn.
That all being said there is one additional and killer feature which would be nice to have. One the Git plugin doesn't support. Getting teams on large projects to properly maintain versioning can be... problematic. (Picture 8 dev teams spread across the globe supporting 35 webapps, all part of a larger enterprise system) At any given time one or more of those projects won't be maintaining version properly in their pom files. On projects like that I'd still like to have one job for all branches under each of those 35 projects. But, I'd like a way to maintain relationship between branch and version via a UI, and enforce that relationship at build time (preferably in a fail fast sort of way). Then I could guarantee that all builds like 2.4.X-SNAPSHOT and 2.4.X release came from the branch named sprintA. I'd associate 2.4.X and 2.4.X-SNAPSHOT with sprintA ahead of time. Then, if a build comes in on a branch named sprintB and the version is 2.4.X-SNAPSHOT, the plugin would know to fail it (That version doesn't match the branch I'd assigned it to.)
Anyhow... back to the feature requested in the ticket. It's needed.
why parameterized builds ?
This would be useful to CI any project that uses to create new branches (typically : feature or topic-branches) and don't want to create a dedicated job for each of them.