OK i need to clear up the confusion on the word "deprecated".
Version 3.0 is fully backward compatible with all versions since 1.0. However significant legacy functionality has been deprecated, i.e. marked for removal in the future. This allows you to start using all the new features today, without having to rewrite a single line of existing code. But it serves as fair warning, the next version may remove some or all (or none) of the deprecated features, depending on the mood of the ARB at that time. So if you want to use whatever new features come in later versions, you have advance notice to start rewriting your legacy code now.
To help prepare for future incompatibility there is a "forward compatible" (or "lite") bit you can set during context creation, and that effectively disables the deprecated functionality. This is not intended as a delivery vehicle for your application (see below), but simply for testing that your code is "clean" of deprecated functionality.
Here's why I believe you should avoid shipping code which requires a lite context. By their very nature they are unlikely to maintain any degree of compatibility from one release to the next. If a vendor is up to version 3.2, it might be burdensome to support all of 3.0-lite, 3.1-lite, and 3.2-lite - hence maybe only the most recent version will be supported for that driver release.
In theory one could see a perf gain in a lite context, but in practice... well, we'll have to see.



.
