The reordering of BGPs is usually left until execution because the pattern may become more grounded during execution.
Filter are moved around during the optimization of the algebra. This can break up BGPs by putting a filter in the middle of them and that then blocks reordering. Specifically, a triple pattern with two ground terms (and the property is not rdf:type) usually yields only a few results. But if we have a BGP where first pattern is a triple pattern of one ground term and a restriction on the object value (as occurs in BSBM Q5), reordering does not find the better starting point.