Holy cow, I wrote a book!
After DirectX 3 was released, development on two
successor products took place simultaneously:
a shorter-term release called DirectX 4 and
a more substantial longer-term release called DirectX 5.
But based on the feedback we were getting from the game
development community, they didn't really care about
the small features in DirectX 4; what they were much more
interested in were the features of DirectX 5.
So it was decided to cancel DirectX 4 and roll all of its
features into DirectX 5.
So why wasn't DirectX 5 renamed to DirectX 4?
Because there were already hundreds upon hundreds of
documents that referred to the two projects as
DirectX 4 and DirectX 5. Documents that said things
like "Feature XYZ will not appear until DirectX 5".
Changing the name of the projects mid-cycle was
going to create even more confusion. You would
end up with headlines like
"Microsoft removes DirectX 5 from the table - kiss
good-bye to feature XYZ" and
conversations reminiscent of
"I have some email from you
saying that feature ABC won't be ready until DirectX 5.
When do you plan on releasing DirectX 5?"
"We haven't even started planning DirectX 5; we're
completely focused on DirectX 4, which we hope to
have ready by late spring."
"But I need feature XYZ and you said that won't be
ready until DirectX 5."
"Oh, that email was written two weeks ago.
Since then, DirectX 5 got renamed to DirectX 4,
and DirectX 4 was cancelled."
"So when I have a letter from you talking about DirectX 5,
I should pretend it says DirectX 4, and when it says DirectX 4,
I should pretend it says 'a project that has since been cancelled'?"
"Right, but check the date at the top of the letter,
because if it's newer than last week, then when it says
DirectX 4, it really means the new DirectX 4."
"And what if it says DirectX 5?"
"Then somebody screwed up and didn't get the memo."
"Okay, thanks. Clear as mud."