I was just stuck on the same problem. Was not using WinForms for a long time, thought can I be missing something in such simple thing?
In my case, I want "Ok" button to be invisible (or disabled) while some task runs, and then appear in the end... So at the start, only "Cancel" is shown, and it's always the "accept"! No matter if I set AcceptButton to "Ok", or to "None", and after the "Ok" appears on form - still "Cancel" acts on Enter. If both buttons are always visible and enabled - it's correct. Well... I thought it was correct, but now after reading this, I tried switching buttons order and yes, it's the first button that is always "accept".
It appears that Form.AcceptButton is just obsolete and unused now. Form.CancelButton is working still, though. I know this is the way how it works in HTML, but in WinForms... I have the same "wtf" question. .NET 4.5.