This would simplify the deployment of these objects, prevent trampling of permissions, and make a single, self-contained statement that could be stored in source control and not require any extra handling or dynamic SQL. Would you like to see this in T-SQL? Okay, go vote and comment!
I tried to promote this idea six years ago, though that specific suggestion I pointed to was swept under the rug. Also, back in 2008, Microsoft said, "This feature is near the top of our todo list for the upcoming release." I wonder what ever happened to that "to do" list.
Of course, this wouldn't make much sense for non-module objects, like tables, since their DDL is vastly more complex and often couldn't often be accomplished in a single statement anyway. I would love to see it for procedures, functions, views, and triggers, as a start.