Given: <c:set target="simple" value="${null}" property="value"/> -or- <c_rt:set target='<%= (SimpleBean) pageContext.getAttribute("simple") %>' property="value" value='<%= null %>'/> <c:out value="${simple.value}" default="Bean property null."/> The default in this case isn't invoked.
Fixed. Technically, the spec shouldn't say "Setting a bean property with <c:set> is therefore exactly the same as setting an attribute value of an action using the EL"; it should specifically exclude "null" from that case. But I don't think we really need to worry about that, since the spec's intent is clear and the RI was just wrong. I've fixed the problem.