Until someone working on KiCad decides to
1.) Handle components in a sane manner... I.E. associating footprints to a part at library design time, not when you push to a PCB
That's actually been in Kicad for years. You don't have to use CvPCB (and I don't, because you're right, it's stupid.)
Each symbol has a "footprint" field, which you can populate with whatever you like. And recent versions of the symbol editor have a button you can press which will open the list of footprint libraries, so you can select the library and then select the footprint you want (graphically!) and then the footprint and the library it's in will show up in the symbol.
Just make sure you use your own symbol libraries and not the default/contributor libraries and you're good.
2.) Provide stable binaries with some level of version control
They're working on that. Part of the discussion has been "when to declare something stable," and then whether to back-annotate patches to the "stable" release or just require the users to upgrade to a newer release. (Everyone seems to lead towards the latter.)
3.) Version control the file formats
The formats are versioned. There has been discussion about this. One issue is: a user creates a board design with an older version of the tools. And then he shares the design with someone using a newer version, who saves it, which automatically upgrades the file format version. That friend then sends the design back, and now the originator can't open the design because his version of Kicad is too old.
So what to do? Most are in favor of telling the users, "upgrade to the newest version," and that requires stable binaries (hence the efforts). Nobody really wants to do the "save as old version" thing.
It is simply not going anywhere outside of the very small user base it has. The idea of a tool is to save you time. Given the activity you see on this and other KiCad forums just getting basic things working, like an up to date binary and a manageable library system, it is simply unusable by anyone who wants to get things done.
Except that users ARE getting things done with it. And it does work. Certainly you have to deal with the library system, but it's actually not all that difficult, and I think I spent more timing thinking about my library organization than I did actually adding parts to it.