I think mkgmap could handle this when you use the locator function.
A small test with the Luxembourg abstract seemed to work.
- Add all landuse=residential to a multipolygon relation with admin_level=11 & boundary=administrative & name=residential_area in JOSM and save this osm file
- Prepare boundary files from this extract: http://wiki.openstreetmap.org/wiki/Mkgmap/help/options#Using_precompiled_bounds_for_the_address_index
osmfilter luxembourg.osm --keep-nodes= --keep-ways-relations=“boundary=administrative =postal_code postal_code=” >lux-boundaries.osm
java -Xms1000m -Xmx1000m -jar mkgmap.jar --createboundsfile=lux-boundaries.osm
3)In the mkgmap settings you have to set the boundary file now to the new custom bounds.
4) In the line styles from mkgmap you can now manipulate the streets within those landuse=residential areas:
(highway=unclassified | highway=residential) & mkgmap:admin_level11=residential_area { set highway=cycleway }
I have set it to cycleway (red lines) to see if it works:

Step 1) must be automated with a script if you want to manipulate larger areas but I dont know how (osmosis?). Also if admin_level=11 is already in use and needed you must use another locator tag (postal code?).