You forgot the fifth possibility, although it is somewhat rare, and that is something that went down the flush valve and is caught in the toilet's waterway. I had one a few months ago, where the water would not even leave the bowl. After trying many ways to unplug it, I replaced the toilet and broke the bowl. There was a blue jelly caught at the point where the water would go down to the jet and the rest of it to the rim. It was in a swimming pool supply store so I looked around to see what it could have been, and found a container of blue stuff that was for use in the pool, but was not sure if it was the actual material. Another time, I had a customer with many of the old Crane toilets with the ceramic seat and the hinged flapper with a Styrofoam float on the bottom. I discovered that the tanks had been assembled to the bowls without using the plastic "stiffener",(which had a plastic "cross hair" inside it and fit inside the tank to bowl gasket). The rubber would deteriorate the float would drop off, and since the cross hair was not there to catch it, it dropped into the bowl, obstructing the flow to the jet. I would fish them out with a stick of silfos heated so it melted into the plastic and then hardened. I once removed FOUR of them from one bowl. Back in the fifties, when Kohler was on strike, some union members hired on as scabs to sabotage the products. I would receive toilets that would not flush, and when the tanks were removed, there were paper towels pushed into the rim flush passages.