It seems kind of silly that a bunny and a dragon take up the exact the space, a single tile. Instead, creatures should come in a variety of sizes, such as 1x1, 1x2, 2x2 and 3x3. We already have one such creature - the Wagon.
Big creatures should be too big to fit through some doors and tunnels and be easier to hit, not just by the means of a skill modifier but by physically being in more than one tile. Being several tiles big also allows for a greater variety in creature display - instead of a single D, you could have a tile that looks like a head, a tile that looks like an arm or a leg, a tail tile, and the body tile.
The technical challenge in implementing these kind of creatures is pathfinding, but I think that can be dealt with by caching a 3x3 bit array for each tile, the entries being yes/no values that say if the corresponding ammount of walkable space exists to the north and to the east of the tile. This cache needs to be updated only when a nearby tile changes (so when any given tile is made unwalkable, it notifies other tiles in a 3x3 radius). The creature, during pathfinding, only considers the tiles that have a large enough walkable area near them, by only considering the tiles that have the right bits set.
As a side effect, being a multi-tile creature could make various traps less effective (weapon traps only attack the limb that actually stands on them, cages fail completely (it just wont fit!) and magma/freeze/obsidian traps also only affect particular limbs (either severing the limb or immobilizing it, while the rest of the creature is still combat-capable).
Very large multi-tile creatures could stomp smaller creatures. It would also provide a visual indicator of how dangerous something is. Does it look big enough to turn a dwarf to paste with a single shove? You get the idea.