There are conflicting goals. Allowing easier access for experienced programmers and a shallower learning curve.
I definitely want to be able to resuse queries. The reason I have moved them to a tcl proc is I find I am using the same query in every page of a package.
I don't see how having a query in a tcl proc makes maintenance harder at all. Just different. The concept is that someone who wants to modify a package could make changes in the tcl/adp pages without diving too deeply into the database.
Are there examples of code that is difficult to maintain because of queries in tcl procedures?