Proof that product of fermion operators is bosonic

I have been told that two fermions make a boson, which I am trying to prove. Suppose we have two fermion annihilation operators $$c_1$$ and $$c_2$$ such that $$\{c_i,c_j\} = 0 \qquad \{c_i,c_j^\dagger\} = \delta_{ij}.$$ Defining a new operator $$b := c_1c_2,$$ we have $$bb^\dagger = c_1c_2 c_2^\dagger c_1^\dagger = (1-c_1^\dagger c_1)(1-c_2^\dagger c_2) = 1-c_1^\dagger c_1 - c_2^\dagger c_2 + c_2^\dagger c_1^\dagger c_1c_2$$ and thus $$[b,b^\dagger] = 1-c_1^\dagger c_1-c_2^\dagger c_2,$$ where we expect the commutator to evaluate to unity for a boson. In this case I am getting an extra factor of the total fermion number. How is it that composite fermions are bosonic?

1. It could be a tautology. "Fermionic" and "bosonic" often refer to a $$Z_2$$-grading in which the product of two odd-graded operators is even-graded by definition. With this language, "bosonic" operators do not need to satisfy canonical commutation relations. They are bosonic by definition simply because they are a product of an even number of fermionic operators. This language is especially common in the context of quantization, where we start with a classical model using grassmann variables for the will-be fermions. Then everything either commutes or anticommutes, with only zeros on the right-hand side of those (anti-)commutation relations.
2. On the other hand, if you have a bound state of two fermionic objects and want to construct an effective model for the bound state using fields that satisfy canonical commutation relations, then the key is to remember that the effective model (treating the bound state as though it were an elementary particle) is only an approximation. The composite "creation/annihilation" operators will commute with each other if the distance between them is enough larger than the size of the bound state. The example shown in the question doesn't quite illustrate this, because we need to consider more than just two index-values $$i$$ and $$j$$. If the fermion operators are indexed by points of space, as suggested by the notation $$c(x)$$ and $$c(y)$$, then the composite annihilation operator might look something like $$b(x) := \sum_z f(z)c(x+z)c(x-z)$$ for some function $$f$$. If we calculate the commutator of $$b(x)$$ with $$b^\dagger(y)$$, we get a non-zero result as shown in the question, but the result goes to zero when the separation between $$x$$ and $$y$$ exceeds the width of the function $$f$$. (I'm being careless with details, but that's the general idea.) If we "zoom out" to a low enough resolution, this is effectively the same as the commutator of $$b(x)$$ with $$b^\dagger(y)$$ being zero except when $$x\approx y$$, so we get the canonical commutation relation as an approximation at sufficiently low resolution. That makes sense intuitively, because only at low resolution can we expect to be able to treat the bound state as an elementary particle.
Remember $$[b,b^{\dagger}]$$ is a c-number, so it equals its own spectation value. And as $$<0|c_{i}^{\dagger}c_{i}|0>=0$$, then you obtain the known result.