Custom fields can be set on:
Workspace level
Space level
Folder level
List level
When setting custom fields on WORKSPACE level, every task in every space will have this field. This could create noise for the spaces that do not need those fields, or need specific fields. So the custom fields are per space differently and some will overlap. So the Space level in great for that.
In the EVERYTHING view you can filter on a custom field to get insight on all tasks with that field. However, this is only possible with custom fields that are set on WORKSPACE level, so ALL spaces. If you select a SPACE level custom field it will convert it to a WORKSPACE level field and add it to all other spaces (tasks) as well. This is really bad. You now can't create everything views on that data you want and if you convert it to WORKSPACE you can not convert it back to SPACE as when deleting it in a space, it will delete it everywhere.