It takes a lot of organization to make them work in DOD, but in my experience it is worth it. From a dev perspective they are actually easier than username/password, as the client certificate DN is available on the server, so you can know the identity of the user very easily.
It makes sense within the DoD environment since it is a controlled environment with card readers at every location and pre-installed software on stations. Not scalable to the general public.