There are several reasons why water bottles come with an expiration date. The main one is government bureaucracy: Water is a consumable food product, and as such, it is subject to laws requiring expiration dates on all consumables, from bologna to lemonade. Mny manufactures continue to stamp their bottles for efficiency's sake as they use the same machines to stamp products that do expire, like soft drinks.
Some of the carbonic acid will form bicarbonate and carbonate, lowering the pH of the water. As a result, the water will become slightly acidic, which explains why water you leave out on your nightstand can taste different in the morning.
The plastic that water is packaged in usually polyethylene terephthalate (PET) for retail bottles and high-density polyethylene (HDPE) for water cooler jugs – is slightly porous, so the water can pick up smells and tastes from the outside world. Keep a case of bottled water in the basement for a year or so and it’s going to pick up some interesting flavors.
Furthermore, many companies bottle water using the same machines they use to bottle sodas and other beverages which do expire and should carry an expiration date. It's easier and more efficient to simply put a stamp on all the bottles (whether needed or not) rather than dedicating a special machine just for bottled water.
Finally, expiration dates are usually only one element of a printed code that also identifies the date, bottling plant, and other information. Even though the expiration date itself is meaningless in terms of water going bad, the manufacturing information could be useful in tracking down contamination, bottling errors or product recalls.