Нет, это не обязательно. Необязательно указывать порядок явно, но в противном случае порядок определяется основными правилами, с которыми вы связаны (сначала базовые типы, буквенные, ...).
Вводный абзац просто подразумевает, что вам не всегда нужно знать или заботиться о заказе - например, если вы используете сгенерированный прокси.
Если вы используете DataContractSerializer для десериализации файла, лучшее решение, которое я могу придумать, это использовать XSLT для преобразования его в правильный порядок перед десериализацией.
Если вы вызываете веб-сервис (для чего был разработан DataContractSerializer), вам лучше придерживаться порядка в контракте.