По-моему, то, что КДС разрешает смешивать разные типы указателей это жесть просто.
Уже как-то говорил, но лень искать... Короче, проблема в том, что в кодесисе вообще нет операции взятия указателя. Вместо неё реализовано неявное приведение чисел к указателю любого типа. И нетипизированных указателей для передачи в аргументы функций тоже нет. Вместо этого тоже сделано неявное приведение, но уже наоборот из указателей в число. В итоге имеем симметричное неявное приведение, которое позволяет мешать указатели разных типов. Скорее баг, чем фича.