ultrakiller,
последний раз работал с Делфи в 7й Версии.
Выскажу предположение, что Memo в Делфи 2009, склонна к Юникоду, так что вызывая MultiByteToWideChar() с первым параметром CP_OEMCP идёт перекодировка с консольной кодировки непосредственно в Юникод, а не просто смена кодировки, как в случаи с OemToAnsi
Например в VB.NET текст для подобного компоненте желательно должен быть в Юникод кодировке, а для Win32 Api элемента управления EDIT, это не принципиально (видимо для обратной совместимости).