As for an ML model it's basically a table of weights each connected to each other. In a sense we use "training" to find the weights to program into each node of each layer of the network.
I would still say an ML model is a program, just that humans did not directly specify each value this program. If we go back to an FPGA people rarely manually instantiate the raw building blocks instead it synthesized and routed most often by other software. Although VHDL and Verilog and such are closer to a program than training. Even with normal software code is compiled to machine instructions instead of directly specified. We still say your programming a computer even your using a compiler.
Just because the end results are based off of statistics and your input data I would still say training is a form programming. Just training tells you it was very indirect.
That aside I would agree that model or tools, and creator were under no oath so the reason here makes sense.