@Enis, perhaps a change in the data model would avoid this situation. However to me, regardless of the data model, it appears that this behaviour is non-optimal.
We select a split point (roughly the middle) and then arbitrarily move it one direction (to find a group boundary). The original split point is the most optimal, in terms of splitting. Thus, we should find the nearest usable split point to that row and maintain as optimal a split as possible.
Sure in the example I gave it is an extreme case, but even ignoring that you might end up with non-optimal splits. It may be the case that moving down 1 single row would find a group boundary, yet we move up back rows anyway.