in reply to
Best practice or cargo cult?
Adhering to a programming style is a form of voluntary cargo cult programming. One adheres to a style to promote readability and maintainability through consistency. The style is not always completely appropriate in all circumstances, but that's a cost the adherant is willing to accept. As long as one knows when it's appropriate to break from the style, it's not cargo cult programming.
So the real question is whether the style was created with thought, or whether it was the result of cargo cult programming. In this case, there are merits to always using those switches.
x encourages readability, the addition of comments, etc. at little or no expense.
Using m intermittently requires more work on the reader's part to understand the meaning of ^ and $.
As to choosing whether to always use it or to never use it, using it adds two new instructions to your regexp library ("match start of line" and "match end of line") at some expense[*].
Using s intermittently requires more work on the reader's part to understand the meaning of ..
As to choosing whether to always use it or to never use it, using it adds a new instruction to your regexp library at little or no expense. Where it could do "match any character but \n" before, it can now easily do the same ([^\n]) plus "match any character" (.).
* — I consider having to use \A instead of ^ expensive (in terms of readability), but I already find $ dangerous to use in validation.