You're correct. Sometimes it can be useful to not block for some operations, even if you're using it regularly with blocking purposes.
From the javadoc for the BlockingQueue
interface:
A Queue that additionally supports operations that wait for the queue to become non-empty when retrieving an element, and wait for space to become available in the queue when storing an element.
So the blocking property is an addition to normal queue functionality. Soo a blocking queue is a queue, but a queue is not necessarily a blocking one.