Senza i breack succede che quando $i è = 1 vengono eseguite:

esecuzione($i,$arr,$start_1,$end_1);
esecuzione($i,$arr,$start_2,$end_2);
esecuzione($i,$arr,$start_3,$end_3);
esecuzione($i,$arr,$start_4,$end_4);

con $i = 2
esecuzione($i,$arr,$start_2,$end_2);
esecuzione($i,$arr,$start_3,$end_3);
esecuzione($i,$arr,$start_4,$end_4);

con $i = 3
esecuzione($i,$arr,$start_3,$end_3);
esecuzione($i,$arr,$start_4,$end_4);

con $i = 4
esecuzione($i,$arr,$start_4,$end_4);

Tra parentesi... se invece di $end_1 , $start_1 e seguenti, usi degli array ($end[1],$start[1]...) ti eviti lo switch