As it turns out the problem was related to OS X and its lack of a case sensitive file system. OS X (I have 10.5.8) only appears to have a case sensitive file system but in fact it does not.
Disappointingly, OS X will change the file from 'test' to 'Test' but only one file will exist.
$ touch test
$ touch Test
This can be changed by modifying the file system _prior_ to operating system installation. I was not about to do this so I looked to MySQL for options.
Where the important lines are:
mysql> show variables;
In this state, tables could be queried in lower or upper case.
I added the following line to /etc/my.cnf
restarted mysql server. Tables could only be queried in lower case. I dropped the database and recreated it. Tables can only be queried in the case they were created in (with some leeway).
Running the above roo scripts produces expected output and no errors.
I experienced a name conflict in one of the MySQL auto generated names for foreign keys. I had to specify the name of the foreign key using the 'constraint' key word.
It is interesting in the database introspect output (from a previous post) that some of the table names identified in foreign keys were lower case and others matched the case of the table names.