Hi Rob,
Because the description is being shown in the HTML Form field, it is the description, not the value, which is sent back to the server when the form is completed.
The server then loads the record (based on the description), gets the actual ID value, and then stores that away with the record being saved.
As a bonus, if you have "Display description instead of value" turned on, then the user can enter the description, or the value, into the field, and it'll "just work". Plus of course, auto-complete can then be turned on for the field as well.
The description key is useful elsewhere because it's probable that the user will want to sort that browse by the description in many cases. So having that key is good for the VIEW engine as well.
It's ok not to have a description field, but then unfortunately you have to display the code, and the description appears in the "comment" on the right, just like in a regular Windows program.
cheers
Bruce