(for context: the 124/5 operate locally west through center city before getting on the highway while the 27 only makes 1-2 more stops in center city before getting on the highway)
Making these extra stops causes the bus to 'miss' the light cycle at almost every stop.
[1] https://www.septa.org/schedules/124?startStop=17842&endStop=...
[2] https://www.septa.org/schedules/125?startStop=17842&endStop=...
[3] https://www.septa.org/schedules/27?startStop=17842&endStop=3...
This would be a much bigger change, but it's also possible for the lights to give priority to buses. When a bus approaches a light, that should trigger the lights to advance to the part of the cycle that gives the bus the green light. That way, you prioritize the 20 people in the bus rather than the 10 people each in their own car.
It's slightly irritating as a pedestrian when you're waiting to cross the road to get to a tram stop, and you see that the tram is coming in less than a minute, and you know you're not going to be able to cross in time. But that's the sort of slight irritation I'm okay with for better fuel efficiency and faster trams.
Which is the issue. Philadelphia's blocks were sized in the 1600s, they weren't designed to be the optimal spacing for bus stops. Given how tiny the blocks are, there is no need to stop at every block.
A surprising number of bus routes in Dublin still follow, to a large extent, tram routes laid out in the 1870s. And use the same numbers. This stuff is _sticky_ (partly because significantly redesigning an existing route tends to annoy people; there's a fairly strong tendency to just make a new one and leave the existing one running in some capacity).