Yes, not for the reasons you state though. It sucks for viewing / editing data from the database.
Not really. A couple of clicks for each field. Create your data types first, then create the fields.
You only need a User data type and Document data type.
Have a User field on the Document data type. Then, you’d find a user’s Documents using Do a search for Documents with a constraint such that User = Current User. You don’t need a join table.