In general, all fields with the same name have to have the same setting for Type, Data type, Repeating, and Cannot be blank, and if any of them have children or attributes, those have to be the same too. I think there are ways to break this restriction, but I definitely would not recommend them.
However, there are ways to work around some of these restrictions. Each different instance of a field in the data source can have its own default value, rules, and validation rules. So if you wanted one of your companyname fields to be required, but not another one, you could add a validation rule to one of them to require it to not be blank. If you wanted to enforce that one of your accountid fields is numeric but not all of them, or something like that, you could make the field a string data type, and add a validation rule to ensure that certain ones match the pattern for a number.
Does that sufficiently answer your question? Is there anything else you would be looking to do besides these examples?