One aspect your argument is missing is that if you are juggling many ArrayLists, having each bundle its own copy of the allocator (instead of storing it just once) means wasting 16 bytes per ArrayList. The allocator-less variant is simply more flexible in that regard.
It is of course trivial to define your own arraylist type that wraps an allocator on initialisation if you so wish.
The Odin way is useful, too. Depends on what you're building.