A face spec can be a face defined with defface, or it can be a list of face attributs and their values.
You can apply multiple face specs (multiple faces) to the same text (in a string or buffer). Those multiple faces are merged - their attributes are combined.
(defvar foo "foo")
(defvar bar "bar")
(add-text-properties 0 3 (list 'face '...
It‘s controlled by the extend attribute of face org-block
(set-face-extend 'org-block t)
You can find out more about face attributes in the Elisp manual. Evaluate the following expression in Emacs:
(info "(elisp)Face Attributes")
or, equivalently, C-h i g(elisp)Face Attributes.