Well, you just wrote down the difference. The 2.3 kernels already include the kernel support. Umm, Unix block devices can write arbitrary bytes of data. Because the block device access is buffered, the kernel is able to deal with the underlying block structure entirely transparently to the application. Raw IO is restricted to entire blocks, however, since it does not have the buffer cache to assist it.
All raw devices are character devices.
Raw devices cannot be presented as block devices. A current linux has no raw devices. The copy in memory still stays there. They are there now. Thirdly, however, there is a major class of applications which simply cannot work on cached devices.