Yep, I realise,
but a code search for $DB->insert_record through the moodle core code shows thats how it is used there in many locations
eg:
./course/lib.php:2200: $DB->insert_record('role_names', $rolename);
./course/format/lib.php:765: $DB->insert_record('course_format_options', array(
./webservice/tests/externallib_test.php:70: $DB->insert_record('external_services_functions', array('externalserviceid' => $externalserviceid,
./repository/lib.php:2061: $DB->insert_record('repository_instance_config', $config);
./grade/grading/lib.php:402: $DB->insert_record('grading_areas', $area);
And many others, as well as many instances where there is a variable in front, but I haven't looked at the code to see if there is another reason for the variable - for instance I also have code that gets the variable for the new record id so I can then update the record a couple of lines further on in my code.
Hmmm - works for me... (not a helpful response I know)