Checked exceptions are an experiment in language design that unfortunately didn't pan out. They sound good on paper, but in practice cause far more pain that they are worth.
Most of Goslings argument for checked exceptions are really arguments for exceptions, not necessarily checked ones.
[an aside] ... Scott, your last two sentences seem to imply that RuntimeExceptions should not be handled (e.g. caught). It was my impression that it is the Error hierarchy that should not be caught. The Runtime hierarchy are unchecked because they contain exceptions that could happen anywhere (e.g. NullPointerException), so making them checked would mean nearly every method would have to declare them.