1. Типизация. Если кто-то зависит от типизированного айдишника клиента, ты никак не можешь случайно скормить ему айдишник заказа. Если ид - просто int, этого не добиться
2. Если есть типизация - ты всегда можешь найти того, кто от этого айди зависит. Если ид - простой int, тебе для трекинга зависимостей тебе нужно наворачивать какие-то ебанутые конвеншены по именованию переменных или методов и эта шляпа вообще не работает.
3. Если за одну таблицу у тебя отвечает две и более сущностей - имея общий тип UserId ты всегда можешь понять, что речь об одном и том же объекте, но из разных контекстов. Если ид - простой int, то удачи тебе в реализации такого сравнения.
Есть что-то ещё, но сходу вспомнилось это.
Теперь твои аргументы в пользу того, что id - не объект