Yes, there is a metadata table that is populated that understands the parent-child relationships. The -recover command navigates those relationships, such that the product knows the parent objects must be restored before the children. Lookup relationships are restored before anything.
Yes, it would be naive to think otherwise. Restore has to be selective and thoughtful, otherwise you’d just be destroying current data with the backup. There is a control field on every row of every table. For a full restore, you can set it to ‘R’ on the Account object
Yes, but it would be naive to think that it doesn’t require carefully though out decisions and preparations to make so the new records fit into the target org, such as Is the target org empty or does it contain existing users, products, and other slowly changing data? On professional
Yes. For example, for a restore operation with 5 levels deep, restore some Accounts, with their related Cases containing Tasks that include Attachments, without losing all of the different Chatter feeds. The -recover command will determine all the object relationships, maintain pointer fields in the children after creating the parent
You can specify a small number of objects in the -set command (-set Account -set Contact -set Opportunity) create a list of objects in an upload.config.[name] control file and use a -setGlobal command, referencing that particular named file use a -recover command, which will recover all the children and their