I took a fresh look at the challenge accept function, and, as I suspected earlier, there IS a off-by-one error there, of sorts.
The bug is caused by a leftover artifact from the earlier system. There, incoming challenges did not count towards your free slots. So, if you had say, 15 active games, and we didn't block you, you could start game number 16, 17, 18 and so on. It was a perfectly correct constraint.
Now that each incoming challenge occupies a slot already, and consequently you cannot have more than 15 of anything, this constraint has lost its purpose. What it actually causes now is what was mentioned earlier in the topic - if you have 0 free slots, you cannot accept a challenge, even though it's occupying 1 slot already.
I will wait for Mojko to confirm my thoughts. If I'm right, fix will be applied right afterwards.
PS: Thanks for Progressor for poking me about this.