Yes, the servlet checks to see if the "contextPath" was provided as init parameter in the web.xml. If it was not, it will use "/"+contextName, which if you look at the original startPortletApplication method, does the exact same thing but within the method itself.
I don't think we ever fullu supported "/" for portlet apps and I am pretty sure the contextPath started being ignored early on in the 2.0 development cycle. This was fairly easy to get past as you could just change the entry in the WEB_APPLICATION table to be "/". However, it appears now that this entry gets reset every time the container starts up, at least it was for me.