I believe the reason for two codes is that its for different entitlements...
Registration code just entitles you to play the expansion content. (Possibly CE items for CE reg code)
The preorder code is what give you the preorder items and the early access entitlement.

Sure it could be done better ways, but it's probably done this way because it's easy to separate what the code entitles you to get.