I have observed this behaviour on version 1.7 but not in previous versions using south migration.
eg.
class RedemptionCode(models.Model):
EXPIRE
After raised the ticket and got closed due to duplication, finally found the answer:
This is by design. There are several reasons, not least of which for me that datamigrations at points in history need to have a full accurate representation of the models, including all their options not just those which affect the database.
Reference: