I agree with Bob, Not many systems can use symbols only like RW, some platforms if you use symbol addressing only (do not allocate the symbol to a physical address) then it cannot be read by an HMI or Scada system.
I believe some platforms can by producing an area to store the symbols, this gives the physical address for the communications.
Many systems currently availlable still use fixed memory areas like Word addresses, at compile time any symbolic only tags are allocated to physical addresses, this is usually an area reserved for the compiler so can be different on each compile, I do not know CX but take the slightly older Mitsubish system.
part of the word area is reserved for symbolic addressing so what happens is that any tags that are declared as absolute would be in the "D" area from D0000 to D7999, the reserved area is D9000 to D9999 (don't take this as gospel because the area can be changed in settings) so if you create a tag called My_Int_Var & use a physical address it could be "My_Int_Var, D100"
A symbolic only address could be "My_Int_1_Var" would not have a physical address but when compiled could be any of the D9000 to D9999.
Unless the platform has some way of storing these in some form of symbolic table that points to physical address an HMI or scada could not access it.
Platforms with physical addressing you don't need to worry about compressing or defragging as these exist anyway, as far as duplicates a cross reference can find them.
Unlike Siemens data areas are fixed, in Siemens Datablocks are downloaded to the memory so the amount & size are how you configure them the larger or more you have the more memory is used.
So on platforms that do have fixed addressing space makes no difference on how many tags you have it does not impact on scan time, only those used in the program contributes to the scan time (well sort of).
The things that do impact are communications, try to make data that is written to or from an HMI or scada system are not fragmented i.e. keep these tags in groups, this means less transactions for example if you have a large chunk of say integers being read by an HMI then it could be one coms transaction, if the data is split over a large data area i.e. say D100, D105, D200 etc. then it would either have to transmit a large amount with some unused tags or a larger number of transactions of small amounts, as communications have an overhead i.e. strt, address, checksums etc. transmitting 10 individual addresses takes more bytes i.e. 10 transactions with 20 bytes each compared to one transaction of 30 bytes + overhead for tags that are continuous.
I suspect most PLC systems will move away from physical address space in favour of symbolic as that is part of the IEC format this helps in code that is transferable form one platform to another.