Pro/Program - this is exposing the underlying structure of the parametric evaluation scheme. One can affect only existing elements of the model; there are if-then structures to suppress or resume and a few parameter changes, but there are no loops and it cannot be used to create new features or delete existing ones.
J-Link - a bit more like what I expect you have seen in Catia.
AutoIt - an external program that can act just like a user, but PTC doesn't expose a lot of information for feedback. I've used it for automating a bunch of things but not model feature creation.
p-Shellm - I've not heard of it.
Mapkeys - these simply replay key and mouse functions and have no loop, no feedback, no if-then structures. I've used them in conjunction with the Query functions in Creo to reliably select features or layers, but it's not easy. OTOH, with the correct prep I used VBA from Excel to generate complex Mapkeys to create models and then 80% complete drawings saving hundreds of manual hours and ensuring uniformity of the results.
If I had a big project I would look at
which has a good following and seemingly good support. It's a follow-on to the also effective Nitro- series of programs - Nitro-Cell, Nitro-BOM, and Nitro-PROGRAM.
One factor that makes this a bit odd is that the original reason Catia has so much programming capability is they did not have the depth of feature creation, particularly of patterns, that PTC started with. One big chunk of the way PTC was originated was to eliminate the need for users to create software to get results. Instead of creating a complex program to add a feature, one can create a UDF (user defined feature) and just add that to the model. The UDF contains all the references needed to place it, so there's far less need to write a lot of code. Since most things about the feature are parametric, one can alter it by just altering the parameter/dimensions after placing it. Many of the programs I've seen automated in other software are tasks like creating staircases or patterns of features.
Instead of creating a program to create a feature - you can create a Mapkey that places a UDF using the Search/Query function to chose named elements in your model. This saves manually choosing the references and avoids getting into the raw feature API which is not well exposed by PTC to anyone. Here's an example of doing something like that with the VB-API (similar to J-Link/Web-Link)
It used to be about $10k to get the Pro/Tool-kit license to get to the raw feature API.
OTOH - I've also seen an example with a company that automated building large welded towers with thousands of weld details, including creating the cut drawings ready for the plasma cutter; so it's not like there isn't room in Creo for automating tasks like that.