The problem for me was that, they used negative ID to store unrelated data from the table intent. It's like having a kind of "hidden world" within your tables.
There is a lot of topics discussing the use of negative ID when the ID store the same datas all the way from negative to positive.
But storing unrelated datas - data reserved to the system for the developper - on the negative IDs of table ... to "save space" ? That for me is bad database design and a problem.