LAST_INSERT_ID without AUTO_INCREMENT
What are the 'requirements' of your UUID?  Why isn't an AUTO_INCREMENT sufficient?  I believe the use (in C) of mysql_insert_id() does not incur an extra round-trip to the server, but rather provides the value from the previous INSERT.  See http://dev.mysql.com/doc/refman/5.6/en/mysql-insert-id.html .

If that does not suffice, consider

INSERT ... VALUES (..., @uuid = UUID(), ...);
SELECT @uuid; -- or simply use @uuid in whatever needs it next.


A note about UUIDs -- They are very "random".  That is, for tables/indexes too large to be cached, they incur a lot of I/O.  More discussion in my uuid blog.