In InnoDB the primary key is a clustered key - the data on the disk is physically organized based on the order of the PK. This means that if you are not using auto-increment or something other that increases the value of PK over time, you will got a lot of random writes and this will kill your performance as soon as the size of the table is larger than the buffer_pool size.
Having in mind this, md5() won't be much better than the compound index for the inserts. Having smaller PK is good for 2 reasons: the size of the PK affects the size of all secondary indexes (because all secondary indexes contain the PK) and using smaller indexes is better ('cause you can load more values into memory at once)