adding an option 'max_number_of_tiles' (and appropriate 'DEFAULT_max_number_of_tiles' ) might lead to fair tile usage: Calculate the best possible zoom-level according to maximum number of tiles one would like to download for given bounding box.
Further reading: http://wiki.openstreetmap.org/wiki/Tile_usage_policy