For two reasons: 1. User can always call hb_buffer_pre_allocate() themselves, and 2. Now we do a pre_alloc in add_utfX anyway, so the total number of reallocs is limited to a small number (~3) anyway. This just makes the API cleaner.
If the specified shapers fail, hb-shape will fail immediately