For the two or so people that might understand or care...
Why the heck do so many BIOS functions take addresses in DS:DX? In 16 bit mode, there is no instruction (that I can find) which loads a value using DX as the address (or segment offset, rather). The usual encodings have completely different meanings in 16 bit mode. Things you expect to work in 32 bit mode, like "MOV AL, [EDX]" have no corresponding 16 bit equivalent "MOV AL, [DX]". Instead, the encoding you'd expect to be that instruction would actually mean "MOV AL, [BP + SI]". I was a bit baffled at first when NASM told me I couldn't do what I wanted to do, but checking the Intel docs for the ModR/M byte encodings, I found rather strangely that it was right.
Another oddity was in the SIB byte encodings. What's the difference between encodings 0x24, 0x64, 0xA4, and 0xE4? They all equate to an address of "[ESP]". Indeed, OllyDbg decodes all of them as the same thing. I suppose if you wanted a really obscure way to store 2 bits somewhere unexpected, you could put them in the scale field of the SIB byte.
Actually, that reminds me of an idea I had for compilers to mark there output by encoding bits into fields such as these, or in careful selection of registers during register allocation when there is a choice between multiple ones. That could be an interesting way to watermark programs and later check for unauthorized distribution, or perhaps tracking down the author of a virus (if it auto marked with a computer locked GUID or MAC address).
Of course, that whole SIB thing is odd in that you even need a SIB byte to index off of ESP. You'd think that's the one register you'd almost never be able to use a SIB byte for, and the ModR/M byte encodings force a SIB byte on you, which means loading a value from an offset to the stack pointer takes an extra byte over using other registers as a base. But, I suppose they needed an escape to mark the use of a SIB byte somewhere. Still though, it seems to make the whole Frame Pointer Optimization a bit questionable.