requested_node_cost is negative. requested_node_cost is never overwritten and we reach the return only if requested_node_cost is negative.
I have the feeling it should be
return 2.0 * shared_data_->obstacle_heuristic_lookup_table[start_index];
https://github.com/ros-planning/navigation2/blob/104bdc51fb72e05af4ccb4fb96a2fd421239f016/nav2_smac_planner/src/node_hybrid.cpp#L542