It might be poorly designed but it helps a lot in the following situation
We have poky or any other "lower" layer providing a recipe-x_1.2.3.
Then we have a layer on top doing a recipe-x_1.2.3.bbappend (to applying backported patches or configuration options or anything version specific).
Now there is an update to the lower to version 1.2.4.
With the removal we get a failing build, with the WARN only we get just a warning, version 1.2.4 is picked.
Final decision if the build is good can be done in testing and/or post inspection.
With the functionality removed I would need to add a patch to the upper layer with a BBMASK
which then in any CI system I know would build with the older lower layer, basically removing the
entire append (which can't be right).
Alternative would be to schedule two changes at the same time (updated lower layer and patched upper layer).
To be honest I've not seen an automated CI system that works like that, leaving it all with
manual assembly of the inputs - requiring a ton of extra work.
 
Another alternative would be to loosen the bbappend mask to cover all version of the base recipe, but
that makes it impossible (without huge efforts) to apply patches for just a single version.
All in all the functionality might have been poorly designed but very helpful and
I don't see BBMASK as an equivalent replacement.
 
my 2 cents