so, once a attribute is removed from some scope, the next scope in the scope order will not be searched for
Where did you read this in the API ?
I've got this (I'm talking about PageContext.removeAttribute, which is actually JspContext.removeAttribute) :
public abstract void removeAttribute(java.lang.String name)
Remove the object reference associated with the given name from all scopes.
Does nothing if there is no such object.
Parameters:
name - The name of the object to remove.
Throws:
NullPointerException - if the name is null