In handmade hero we use PushSize to allocate memory, and if the arena need to grow it will call VirtualAlloc with a "big" block so that VirtualAlloc isn't called often. So if you PushSize( 64...) it's fine. Just don't use the overflow and underflow flags.
From time to time (e.g. once a month), if you want to verify that you don't write outside of the memory you requested with PushSize you use the overflow/underflow flags, but only for the test.
You shouldn't use VirtualAlloc if you need to make a lot of small allocations. You generally use VirtualAlloc to allocate a "big" block of memory and use a custom allocator (like HMH arenas, and PushSize) on top of that. For information, VirtualAlloc always allocate with page size granularity (4096 bytes) and aligned on 64Kio (16 pages), so if you allocate 1 page, you "waste" 15 pages of address space.
I suppose HeapAlloc is better suited for smaller allocation, but I've never used it.