Because it doesn't work.  `(sqrt(3) + 2)/7` simplifies immediately to `sqrt(3)/2 + 7/2`, whereas the function returns `(sqrt(3) + 2)/7`.  So the top-level element in the first case is an `Add` while in the second case it's a `Mul`, so they don't match with `==`.  Interestingly, the case of `cf_q([[1]])` *would* match exactly, since for some reason it isn't converted to the Add form.