Диапазон типов данных C++?
Хочу порекомендовать тебе материал от разработчиков PVS-Studio относительно моделей данных в C++. Там хорошо и коротко объясняется суть твоего вопроса.
Так же тебе будет полезно изучить документацию C++, где можно изучить подробности.

Модель данных выбирается при трансляции и не может быть изменена в уже собранном бинарном коде. Абсолютно весь бинарный код опирается на значения модели данных буквально в каждый момент времени исполнения. Изменение модели данных бинарного кода потребует детального анализа как исполняемого кода, так и всех структур памяти, которыми бинарный код оперирует. Это будет эквивалентно повторной трансляции исходного кода в бинарный с иной моделью данных.

Модель данных сильно связана не только с бинарным кодом самого приложения, но и с его зависимостями от системных библиотек. Процесс с неподходящей моделью данных не сможет нормально работать с системными библиотеками просто потому что система и процесс по разному трактуют данные в памяти.

Поэтому, в общем смысле на твой вопрос ответить можно так. Если клиентская система ожидает от процесса одну модель данных, а он работает в другой, то падения процесса не миновать. В ряде случаев процесс даже не загрузится в память, т.к. загрузчик бинарного кода может по косвенным признакам определить несовместимость процесса и системы у клиента.
Есть типы фиксированной битовой ширины - int32_t, например

Если их использовать, программа или не соберется,  или будет работать медленнее (из-за программной эмуляции)

Если просто напишете int, в зависимости от компилятора можно получить 16 бит или 32 бита, подробности гарантий на типы изложены в Стандарте языка.

При передаче уже откомпилированной программы пользователю, все размеры будут определены на этапе компиляции, так что у него программа или не заработает совсем, или будет работать как задумано.