B4J Ints are translated into Java ints (a primitive, not an Object). Primitives, in Java, aren't references like Objects are. When a numerical primitive is automatically initialized to 0 (the JVM does this for us for global variables but Erel also does this for us when translating from B4J to Java), no extra int is created. It's just that the value of this new int is set to 0. That means it's not wasteful of memory and computation to do automatic initialization for primitives.
Also, primitives are stored in the stack which means their memory is automatically reclaimed when their owning function returns and their stack frame is discarded. Objects, on the other hand, are stored on the heap and their memory is reclaimed only when the Garbage Collector reclaims it. Unnecessarily creating Objects with automatic initialization would add a lot more workload to the GC.