How do I display the usage flags for my encryption keys in a less hackish way?

It appears that later versions of GnuPG (2.1+?) have a parameter value for --list-options that will do this:

$ gpg --list-options show-usage --list-keys

Like any of the long options this can be persisted in ~/.gnupg/gpg.conf:

list-options show-usage

The machine-readable format using --with-colons contains the usage flag as last column. It is not very readable for humans, but contains the data you're looking for.

$ gpg2 --with-colons --list-keys 449FA3AB
tru::1:1414619239:1414879758:3:1:5
pub:e:1024:17:956EB7BF449FA3AB:939086351:1002158351::-:::sca:
uid:e::::939086351::81A3799583B9B1B391E4C428112F302FF2ADF462::Linus Torvalds <[email protected]>:
sub:e:2048:16:71CE8207BFF491C5:939086545:1002158545:::::e:

Torwald's public key can be used for signing, certifications and authentication; the subkey can be used for encryption.