In order to have a DID, you have to have a SIP account. If the provider you are planning to use in one country offers DIDs from others, and that is what will work, then go for it.
In most cases, to get a phone number from a specific country, requires that you have a SIP trunk in that country.
If you require a German telephone number, you get a German SIP trunk, you can then add DIDs as required. The German company
probably won't supply UK DIDs. You'd have to get a UK SIP trunk for that. Of course there are exceptions, and there are SIP providers that offer phone numbers from a number of countries. Of course, you will pay a premium for that "convenience".
So...you can order a SIP trunk, with one number, and route that number as required. The trunk will support more than one call, depending on what you are paying for. If you require additional numbers, then you order DIDs, which will be less than the initial cost of the SIP trunk. You can then use DID rules, in 3CX to route the calls as required.
The question I am trying to ask is..
Is it better to have a number as a SIP or a DID if the number is for a different location...
It will come down to what the provider allows (will the provider allow you service if you are not located in their country), and how are you getting the call to the destination. Whether it is the "main" number assigned to a trunk, or a DID that is added, makes no difference.