That may be true, but it may also mean you utilize more memory than you need to. If you aren't shrinking the array when you no longer need previously allocated capacity then you're wasting memory. You could end up with an array of 10 elements and an allocation of 2^10.
The capacity as bit_ceil(len) ensures that at most, half of the allocated space is wasted - excess space is O(n).