Well, good news. I found an answer by myself. The answer itself was in man pages.
All you need is to use EXPRESSIONS. This is correct for any option (not only bootfile-name), to which you want assign a value from client's request.
From the man dhcp-options
:
SETTING OPTION VALUES USING EXPRESSIONS
Sometimes it's helpful to be able to set the value of a DHCP option based on
some value that the client has sent. To do this, you can use expression
evaluation. The dhcp-eval(5) manual page describes how to write expressions.
To assign the result of an evaluation to an option,
define the option as follows:
option my-option = expression ;
For example:
option hostname = binary-to-ascii (16, 8, "-", substring (hardware, 1, 6));
So, as you can see, the only difference between this code and mine is equal sign!
For curious one, the answer to my question is:
option bootfile-name = concat( binary-to-ascii(16, 8, "",
substring (hardware, 1, 6)), ".cfg");
Did you noticed "="?