Over the years (15 yrs) working in Netsuite I came to a realization that 2 file transaction import is more efficient than single file. Reasoning Below:
• You don't have to repeat header info for every single line thus lowering the chances of errors
• Assigning of an external ID in the header level file and reference that in the line level ensures correct transaction structure, also setting an external ID allows you to have easier time for future update or any suitescript needs.
• Major reason is here is to keep the header and line level data sperate and clean, so makes it easier to manage and validate data
• Also always try to use internal ID's for entities, subs, dept, items, accounts etc whenever possible in your load file. This will save you bigtime from import headaches