I don't know about 'building' dirt floors though. That would mean you can't cover an already-constructed rock floor with dirt. Perhaps you could use a dirt dumping zone, much like a pond zone, to mark an area you want covered with dirt. Just like a pond, the dwarves would keep bringing bags of dirt until all the tiles are dirty.
I'd abandon the idea of plants growing in the 'floor' layer and make plants require a whole z-level of soil below the 'working' level ware they are planted and harvested. Thus you would need to dig and channel out a 2 level deep room and then fill the lower half with dirt to create an underground farm.
There should also be a new construction type, "dirt mounds," to solve the problem of dropping entire tiles of dirt on enemies at once. The way it would work is this: one bucket of dirt creates a mound, which blocks the movement of smaller creatures but not larger ones (and allows trapped creatures to escape from it if given enough time), and another bucket creates a wall. Dirt mounds adjacent to walls automatically become ramps, and pouring dirt on a one-tile-wide area will create dirt ramps to the sides, which will (realistically) prevent you from building a 3-tile-high dirt wall without it piling up into a mound.
Sounds good but make it even simpler, all dirt mounds are ramps at all times. Have a rule that dirt mounds can only be constructed on top of a solid surface like a stone or dirt wall and any dirt wall not surrounded on 8 sides by walls or dirt mounds collapses by splitting into two mounds one of which will be ware the wall was and the other in the empty space triggering the collapse. Thus when your dwarfs build with dirt they will naturally create these ramps by the avalanching of the lose dirt mounds.
Also some kind of wheelbarrow would be an excellent addition as it would allow the equivalent of two or three normal trips worth of dirt to be carried in one trip with only a minor loss of movement speed. Bags make a little more sense for transport then do buckets but I could see both being used interchangeably.