Why is this check necessary? This means that any other implementors of `BytesContainer` don't get this special treatment. If everything is a container of bytes, why not call `push(container_as_bytes())` all the time?