I've been using it for 29 years now.
The last 20 years don't mean anything; the Vim codebase is too much of a dumpster fire for anything significant to happen in that time span.
They had to fork an entire parallel command set to implement "location lists" (new in Vim 7, I think) which are exactly like the "quickfix list". Most of the difference are that location list commands start with l, wheras quickfix list commands start with c. Your keybinding to go to the next quickfix item doesn't work in a location list because it uses :cn^M, but the location list wants :ln^M or whatever. The only explanation for this ridiculous state of affairs must be that it was too difficult to extend quickfix lists to do the things that location lists do. Once you get into the Vim codebase, that will not be surprising.
Vim's visual editing semantics assumes that you have a block cursor, and that that the character covered by the cursor is included in a visual selection. This is not so nice when you switch your terminal to an I-beam (or vertical line) cursor, which references between characters. If the cursor is to the left of the selection start, it includes the character to the left of the cursor too. I-beam semantics allows for a zero-length selection, whereas in block semantics, there is always at least one character in the selection, which is the one under the cursor. I-beam semantics is virtually what pretty much all GUI editors do, including the text widget in Firefox I'm using now to type this.
A bunch of years ago I looked into what it would take to have a flag in Vim to flip to I-beam semantics for selection. Gack! I estimated a month of full time work. Numerous places in the code would have to change in ways where you're not sure what side effect they will have elsewhere.