Используйте обертки, сделайте свою жизнь проще.
Ваша модель данных должна диктовать это.В любом случае, вы должны принудительно устанавливать обнуляемость в базе данных.
Если они могут обнуляться в базе данных, используйте оболочки.Если они не обнуляются, и вы используете оболочки, то вы получите исключение, если попытаетесь вставить ноль в базу данных.
Если ваша модель данных не диктует это, тогда придерживайтесь соглашения, используйте обертки все время.Таким образом, людям не нужно думать или решать, что значение 0 означает ноль.
Я бы также поставил под сомнение ваше утверждение о том, что оно будет менее производительным.Вы измерили это?Я имею в виду действительно измерил это?Когда вы говорите с базой данных, есть гораздо больше соображений, чем разница между 16 битами и 32 битами.
Просто используйте простое, согласованное решение.Используйте обертки везде, если кто-то не даст вам очень вескую причину (с точной статистикой), чтобы поступить иначе.