Currently, only descendants are checked. However, we need to check siblings also because of sibling selectors.
CSS 2 defines the next sibling selector. Eg div:hover + .next
While CSS Selectors Level 3 (draft) defines the following sibling selector: div:hover ~ .following
As per my understanding, when considering node N, siblings of N that come prior to N (in document order) need not be considered.