NT 3.1 was supposed to be OS/2 3.0--IBM was to develop version 2.0.
But the collaboration between MS and IBM fell apart, with MS continuing to develop Windows. IBM continued to work on OS/2, but it never took off aside from a small and loyal niche market.
So, MS took out the OS/2 API and much of the IBM code--replacing it with the Windows API and their own code. Technically it was clean-sheetede because MS wrote a ton of new code and put it around the new NT kernel, which MS implemented.
It is interesting how this history is discovered and recalled piece by piece, as if M/S doesn't care too much about it.