The point is that you want ot handle these differently because they represent programming errors and you don't want to miss them.
There are a lot of programming errors that I don't want to miss, but not all of them (by any stretch of the imagination) are represented by RuntimeExceptions. If I misspell the table name in an SQL statement, that's a programmer error too, but an SQLException is not a Runtime Exception.
It seems very artificial to say Checked Exceptions should be caught and Uncheck exceptions should not be caught. If I call function f() and it fails, I don't really care if it failed because a null pointer was dereferenced or a file couldn't be openned.
Furthermore, there is a significant number of programmers who consider checked exceptions a language wart and are moving to unchecked exceptions (witness Scott's response in this thread).