Sticky sessions config uses only first server for new requests

I use very simple config for balancing traffic between 3 backends:

defaults
mode http
option redispatch
retries 3

frontend front_site
  bind *:443 ssl no-sslv3 crt /etc/haproxy/domain.com.pem
  default_backend back_site

backend back_site
  option tcp-check
  balance round-robin
  cookie server_id insert indirect nocache
  server back01 back01:443 ssl verify none check cookie b01
  server back02 back02:443 ssl verify none check cookie b02
  server back03 back03:443 ssl verify none check cookie b03

The problem is that when back01 is down then all new requests come only to back02 (and server_id cookie is set to b02). It looks like Haproxy selects first available server from the list. If I move back03 string before back02 then all requests come to back03 and nothing to back02. Did I miss something in documentation?