In most versions of Microsoft Visual Studio this actually works correctly. However, there's no reason why this should be so, it's totally upto your platform.
The idea behind delete[] is that this is a special case in which size is not known at compile time, which the allocation framework might want to handle differently (and optimize the delete case).
Strictly speaking, delete pointerToBaseClass
also doesn't have size known at compile time, but this is solved by virtual table, and compiler knows that the class is polymorphic at compile time.
If you mishandle delete[], it may also have problems with tools replacing the allocator (debuggers, boundscheckers of all kinds, etcetc) and custom allocators your users may use.