How do CiviCRM profiles hook up with Drupal?
The question was 'how do I debug this from first principles' so that I don't have to work from my sometimes flawed knowledge of the application. 

The solution was to turn off a panel that was overriding the CiviCRM forms. This is readily discovered by looking at HTML source code as panels prints out the panels classes and they didn't look right. 

Trying to debug the source code was no use in this case and cost a couple of days effort. If you want to check that civicrm is running or follow the form creation process start at civicrm_form_alter() in a drupal system.