Both questions are easier by recalling the difference between a data frame and a presentation table. In the first case, a data frame can't have two headers unless it is tolerable to have the "real" header as a row, and that will mean converting the numbers to character representation, which is seldom desired.
In this case, the "party" column would have to be entered as "", creating "invisible" data and the rownames wouild have to be converted to a column and it's heading would also have to be entered as "", also not ideal.
I do not know why I had to comment last line (#ft_2), because reprex crashed otherwise. This is why I included the output from clipboard, but still curious why it happened. I do not know why reprex can't include final resulting flextable in it ?
Now I try to place vertical bold line between first and second column, any suggestions would be greatly appreciated.