Citect will compile just fine. It will start and run until you exceed the tag count in your license, at which point it will immediately shut down.
Since it uses "dynamic" tag counts, the tags aren't counted until they are used.
On the screen and the page is displayed?- That counts.
On a screen that is never displayed - That doesn't count.
Used in a trend tag or alarm tag? That counts.
Used in a Cicode function? That counts when the function is run.
Used in an alarm, a trend and on a screen? That counts only once.
Here is where you can get caught by surprise - the tag on the screen isn't counted until the page is displayed. Neither are tags in scripts. You could make 100,000 tags, and if you only put one on the screen then your tag count is one. If you put 500 of them on a page but never, ever display the page then those 500 don't count. On the other hand, as soon as you display the page the tag count goes up by how ever many tags haven't previously been referenced. Same thing applies to Cicode and VBA.
There is (or maybe was) a bug in the latest version of Citect. If you use a mix of the "equipment" naming method and the old just name method then Citect will count the tags twice - in other words, Equipment.Tag and Equipment_Tag, although the same thing in the database, gets counted twice. I reported this to Citect, but the follow up to me was a question asking for estimated sales to determine the priority to fix it. As far as I know it's still broken.