During the installation process for a new site, Drupal will automatically detect support for clean URLs and enable it by default. I found that utilizing a Zen subtheme with my custom install profile was resulting in Clean URLs not being enabled.
1. Create a zen subtheme using the 'drush zen' command.
2. Set up a basic install profile that sets theme_default to use a Zen subtheme on a stack that has support for clean URLs.
3. Once the installation finishes, click through to your new site and observe that Clean URLs are not enabled.
I found that the cause of the issue is that the STARTERKIT.info.txt file has several lines of code that set default values based on zen, whereas these should be based on the machine name of the subtheme:
; Set the default values of settings on the theme-settings.php form.
settings[zen_breadcrumb] = yes
settings[zen_breadcrumb_separator] = ' › '
settings[zen_breadcrumb_home] = 1
settings[zen_breadcrumb_trailing] = 1
settings[zen_breadcrumb_title] = 0
settings[zen_skip_link_anchor] = main-menu
settings[zen_skip_link_text] = Jump to navigation
settings[zen_html5_respond_meta] = respond
settings[zen_html5_respond_meta] = html5
settings[zen_html5_respond_meta] = meta
settings[zen_rebuild_registry] = 1
settings[zen_wireframes] = 0
Additionally, zen.drush.inc does not account for replacing the names of these variables.
Changing these default values from 'zen' to 'STARTERKIT' and adding one new line to zen.drush.inc to replace the 'STARTERKIT' values with the new subtheme name appears to resolve this nicely.
I'll have a patch out for this momentarily.