No, fields can't really specify any of the SQL used to make/update/delete them (partially as the SQL is heavily dependent on the database backend, and Django traditionally has the fields as the database-agnostic bit and the backends as the specific bit). All they can do is supply a db_type, which has to fit in the space a type would go for ADD COLUMN, etc. (that's how contrib.postgres has its fields work, for example).
I know that Marc Tamlyn was looking into this for some of his PostgreSQL stuff, and other people have floated some ideas around letting fields have more control over migration stuff too - they may be able to chime in when we get to a sensible time in Europe on this.
I'm definitely far from the only person who can work on fixing up the migration stuff; in fact, I haven't done much to it at all recently and it's been all other people, so if you think you want to take a stab at it, you're more than welcome, and I'm more than happy to review patches against migrations.
Andrew