(most are highway=service, then residential and others are really really little).
do you think you can change the behavior that b) will also work? If not I'm just going to rewrite my rules for highway=service - and drop the idea to get rid of track,residential, footway and path with service=driveway tag (and hope this does not change in future).
All other things that are specified in {} brackets also work like b) - that's why I thought it should work that way too.
Another possibility would be if it could be added to the finalize section instead. So have in finalize section
( highway=service | highway=track | highway=path | highway=footway | highway=residential ) & service=driveway {set mkgmap:set_semi_connected_type
=none; set mkgmap:set_unconnected_type=none}
which would then overrule rules given higher up.