Ну это как винить, что x86 конвертирует float -> int по одному, а ARM по-другому (с насыщением если выходит за допустимые пределы). Это все зависит от компилятора. JS VM например не имеет таких проблем и ковертирует примерно так: (uint32_t)(fltVal % 4294967295) под капотом