DefaultServlet seems to handle everything about welcome files. However it only checks if the path appended with the welcome file name is a static resource, not if its a handled servlet mapping.
I discovered this when I compiled all the jsps in an app, including index.jsp, and deleted the source jsps..... the welcome files stopped working.
One possible solution would be to check the pathMap in ServletHandler for the appended path and dispatch to it if present. However I'm not sure how to get to the ServletHandler from the DefaultServlet. Maybe there's a better way?
I imagine this is a problem in 7 also but haven't checked.