I personally don't love it either.
You CONST TRUE = -1 and get a duplicate definition because you are using a library that already set it to -1, then you remove that CONST line you'd just written.
If you happen to conjugate two libraries and they eventually did set TRUE to some value, I imagine two scenarios:
1- Libraries working together require preplanning anyway. They're either by the same author OR
2- They are by different authors that didn't preplan interaction and a user's intent to join their functionality supposes some extra work anyway.
Here's a personal example: I've recently adapted Zom-B's GIF player found in the WIKI so it could be integrated into InForm's next release. There was no TRUE/FALSE consts in there but there was a bunch of adaptations I've had to do to get it to interact properly with my code. That type of extra sweat was not intended by Zom-B when he wrote it, but neither was the integration.
It's not so much an issue of pre-planning, as it is an issue of independent redundancy.
Here's a personal example: Recently, I was playing around with a program that made use of Terry's Menu library, my Text library, and my Frame library. All three of these set TRUE and FALSE as CONST, which left me scratching my head pondering how to proceed. These are all independent libraries, ALL use True/False settings, and they're not all going to be needed for every project. So, do I:
1) Remark the line out of the libraries, maybe making them unrunable for other programs that use them? (Or only use one of them?)
OR
2) Make a copy of the files, rename them slightly ("MenuLibrary -- NoTrue.BM"), and have an extra copy cluttering up the drives, and then use those versions after I remark the CONST out?
Or, option 3: Since the values are the same, just teach QB64 to ignore those duplicate labels.
**************************
I guess one way around the issue would be to use the precompiler we have.
$IF TRUESET = FALSE THEN
CONST TRUE = -1, FALSE = 0
$LET TRUESET = TRUE
$END IF
The first time QB64 encountered this, it'd set the CONST values (and precompiler TRUESET value), and the rest of the time it'd overlook them completely...
This would require a change to a whole lot of libraries though, and folks would have to agree to abide by the same standard or else it won't help any. (For example, say my libraries use TRUESET as the flag, while Terry's uses TRUEFALSE as his flag, and Rho's uses COMMONLABELS for his...