I don't understand what a form has to do with CL tools and their weaknesses. If you think that a form would help create better commits and commit messages, you can set one up in the CL. You can think of all of Git's interactive options as forms or wizards.
There is also pulling commit messages from a file. The commit -F /path/to/file switch allows you to specify a file that Git will pull text from. I try to write my commit messages before I make a change, because it helps me ensure that everything I'm working on satisfies the single-thing-per-commit rule. I always update the same file, so I made it an alias:
git config --global alias.commit-txt 'commit -F ~/commit.txt'
Edit: If you're unfamiliar with how aliases work, you create one with the above invocation. The portion after
alias. is the command you define and want to type. The portion in single-quotes is the actual git command. Thus, you'd type
$ git commit-txt
to use the above command. What the command line sees is
$ git commit -F ~/commit.txt