imho, не надо делать код, основанный на недекларированном внутреннем устройстве компилятора или библиотек.
Аукнется обязательно.
widestring по логике - разновидность string с кодовой страницей 65001 (UTF16), во всяком случае именно это получается из информации в описаниях. Именно из-за этого преобразование из одной кодировки в другую прямо таки обязательно прилетит в процессе.
з.ы. Мне в свое время стоил большого количества времени участок повторно используемого раннего кода, построенный на совмещении в памяти двух разных структур - из-за выравнивания и разной внутренней реализации real. С тех пор "программистских финтов" стараюсь не делать, ибо со временем: задумка будет обязательно забыта, и проблемы возникнут - причем неожиданно.
Добавлено спустя 7 минут 23 секунды:WideChar - Constant length: 2 or 4 bytes, representation: 1 character.
об этом не забываем. Если сгенерите "из целых" пару, в которой получится префикс для "4 bytes" символа, получите непредсказуемое.