There are number of defficiences that should be addressed in 10.4.
- Pushdown_select instance doesn't clean up the temporary table created for Select_handler
- The loop in SELECT_LEX::find_select_handler() should iterater of TABLE_LIST from next_global and not next_local. Then subquery tables' handlertons could be searched for select handler capabilities
- JOIN::optimize_inner() should be called before Select_handler::init() in JOIN::optimize(). If Select_handler::init() is called before JOIN::optimize() then processing of statements like the one is broken since Server doesn't rewrite one of outter JOINs with inner JOIN.