You don't indicate how the elements of either option are controlled or what capabilities your system has for restricting the checkout/checkin features.
However,...
Given your two options, the problem I see with Option B is that a person could checkout, make changes, and checkin for no good reason (unless you really meant "an association is required by the controlling application at "checkin."
As you state the sequence, it says a person can perform the checkin and then associate it with a DR after the fact. Since no association is required for checkout, two or more people could have the file out at the same time for the same DR (unless you can lock at checkout).
If you use Option B, a better sequence for step 4 might be to "Associate with a DR, checkin, action forward." This assumes you can require an association before checkin.
Frankly, I'm in favor of Option A. In the first place, I'm of the opinion that "If you don't have a DR, then you shouldn't be checking it out in the first place."
Also, if the file is locked at checkout, a second Dev cannot checkout under the same DR (or under a different DR unless it goes to a different branch). Some tools handle this very well, others not so hot.