@halirutan I agree with all that in principle. Like Fateman noted in his paper, in 1990, there are other CAS programs (written e.g. in LISP) that could be used to implement subroutines. I am very impressed by
Rubi, which outperforms Mathematica's Integrate although it was created by one single person. I wouldn't have thought it would be possible if it weren't for that package but he made it look easy (even though of course it's not.)