The var example was just an example. Every time you want to use an int that comes from somewhere else in the program you have to insert a cast. Most .NET APIs use signed ints. I'll add another example to make this point:
BitVecExpr someExpr = ...;
int bitvectorSize = Utils.GetBitvectorSizeRequiredForBitcount((int)someExpr.SortSize);
BitVecExpr countExpr = context.MkBVConst("count", (uint)bitvectorSize);
Here, Utils.GetBitcountRequiredForCounting is a math helper that basically computes ceil(log2(x)). It deals in ints because it supports signed input.
Casting surprisingly often comes up when using arithmetical operators. For example:
var x = a << b; //does not compile. 2nd operand must be convertible int
The C# language and BCL are just made for ints.
Your objections are valid of course. It's a trade-off to be made. Just wanted to make you are aware of this.