You should absolutely follow the Esri-provided steps for applying schema changes to your replica sets. Using their tools is the way to go (and of course, it's supported!). Esri has a pretty good, well-documented workflow for applying schema changes to both replicas in the set without corrupting your replicas. Follow their workflows and you should be fine.
Scripting your changes in Python is definitely an option too, but I'm not sure how universal your script could be in order to propagate any type of schema change to both replicas appropriately. One possibility is to write a Python script and corresponding GP tool for each type of schema change that you anticipate could occur (for example, adding a field, deleting a field, adding a domain, modifying a subtype).
Lastly, I can't tell from what you wrote whether or not you are considering making schema changes to your replica set using non-Esri tools. If that is the case, I can only imagine you are referring to RDBMS tools. I would highly suggest not going down this path unless you are an expert at replication and versioning. Making changes on the base table, for example, using RDBMS tools but not on the corresponding A, D, S and F tables can have profound negative affects on your database and ArcSDE overall. At the very least, you will corrupt the modified object classes in ArcSDE. Worst case, you may be in a situation where your geodatabase is unrecoverable. Hopefully you aren't thinking of going down this path, but I wanted to cover it just in case.
I hope this helps!