In the worst case, yes, you may have to compute for the Boolean function a new BDD with the new variable ordering. However, you may do that incrementally using the swap operation that exchanges to neighboring variables in the variable order, and you may consider "local symmetries" like a&b -> c where a and b are symmetric in a certain sense.