Нет, это не так. Внутренний макет класса или структуры не обнаруживаем. Маршалинг необходим, руководствуясь [StructLayout], чтобы преобразовать этот недокументированный макет в известный. JIT-компилятор с готовностью использует это, он переупорядочивает поля в структуре, например, чтобы выровнять их должным образом и потребовать минимум памяти. Это побеждает любые уловки, которые путаются с неуправляемыми указателями. Простые типы значений ведут себя предсказуемо, но они уже хорошо защищены BitConverter. Структуры - ваш заклятый враг.
Это одна из причин того, что файлы с отображением в памяти так долго поддерживаются .NET Framework. Но они будут доступны в .NET 4.0, вы можете воспользоваться классом MemoryMappedViewAccessor. Он все еще использует маршалинг, он спрятан под ковриком.