I'm myself trying to explore various "best practices" but its not easy because openshift and as7 does things in similar but still different ways.
And it all depends if you are using the "source" approach of letting openshift build its deployment or the "binary" approach you mention above.
Until M4 (next jbt release) your approach is probably the simplest, but in M2/M3 you can also create an AS 7 server adapter in which you toggle the "Server is externally managed. Assume server is started" On, set the "Use Custom deploy folder" to the "deployments" folder of your openshift repo and then the only thing you need to do is to do the git commit/push (the adapter will make sure there is a deployment with proper .dodeploy file).
In M4 we plan to push the "source" approach and create an server adapter which will allow Run As... to work without additional configuration
and if we can make it a "binary" server adapter which will maintain its own git checkout and and do commit/push to openshift via the "deployments" folder (basically what you do but just automated).
Suggestions to make this better very welcome ;)