Всё гораздо серьёзнее. Вот пример для проверки:
#include <iostream>
int main()
{
std::cout << "-3/3u*3 = " << int(-3/3u*3) << "n";
}
Посмотреть результат можно тут.
Или попробуйте поиграться с этим примером здесь или здесь.
Вообще-то мне не удалось найти хоть какой-то компилятор С++, который бы выдавал результат отличный от -4. Даже старый GCC-4.1.2, clang-3.0.0 или Borland C 1992 года. Также заметил, что результат одинаковый и для константы, вычисляемой в момент компиляции и для времени выполнения.