продолжение equart'овского
Я попробовал так:

Но у меня всё просело в 2 (!!!!) раза.
Или, в обратную сторону, банальный поиск в квадранте быстрее, чем перекидывание направления на 49%.
Для сравнения enum'ая версия (где направление сплита задавалось в ноде) тоже медленнее поиска в квадранте, но не настолько. (14%).
Что-то в квадранте есть высоко эффективное. Следующая цель — делить область на NxN частей.
Если кому-то на моё криворукое хочется посмотреть:
search1 (самый эффективный код в настоящий момент: https://github.com/amarao/equart/blob/e0f157729fb774328859096b8e11aaed46126cfd/src/quadtree.rs)
Версия с флагом, передаваемым в рантайме: (самая ужасная из трёх): https://github.com/amarao/equart/blob/f9c01a72b9ee91d4476bdf8d5806c32942ddcc7d/src/quadtree.rs
Версия с enum'ом внутри структуры: https://github.com/amarao/equart/blob/72c781075160fc0cd93a007f119d1fa950e72d09/src/quadtree.rs (на 14% хуже оптимальной).