It is not difficult to program a game (a proper framework assumed). In terms of shots to award points, award progress and launch modes. Or even point/progress in context (of modes). But, you have to consider the following.
a) It has to be pretty.
b) It has to be stable.
c) It has to be a game.
a) Think of a scoop. You hit it. It has to recognise the shot made. Present one or more awards. Let you know how the game is resumed. Balls from scoop? Balls from trough?
Basically everything needs to be presented, guided and choreographed properly. Or the players satisfaction will get hurt. And that was just a scoop.
a2) A game is not better than the weakest link. You need support from sound, lights and display. In the older days you were limited by RAM/ROM/CPU too.
b) Basically switches in a pinball machine cannot be trusted. They may skip. They may double fire. They may fire with no actuation at all. And they may die.
And you do not know where the ball(s) is(are) at all times. Including having to be making assumptions on the speed of the ball. Example. On Radical, if the diverter releases after diversion but before the ball is actuating the next switch, a wrong assumption of the shot made, is made.
c) Pinball programmers are also reponsible for the game design. It is not just an implementation job of what somebody else has designed.
You may develope rules that turns out to not work at all with how the game has developed mechanically. Developement time you have now wasted and cannot recall.