As it was noted, the problem is that neither
:h :@, nor
:h execute() know anything about
:h line-continuation. Only
:h :source supports it.
Here is the piece of code taken from my config to deal with this problem.
" preprocess VimScript to allow
" :h line-continuation and :h line-continuation-comment
if stridx(&cpo, 'C') < 0
let [l:curr, l:last] = [1, len(a:script) - 1]
while l:curr <= l:last
" match line-continuation or line-continuation-comment
let l:cont = matchlist(a:script[l:curr], '\v^\s*(\\|"\\ )(.*)')
" skip over normal line
let l:curr += 1
" join line-continuation
if l:cont ==# '\'
let a:script[l:curr - 1] .= l:cont
let l:last -= 1
Now something like
call execute(s:preprocess(getreg('', 1, 1)), '') should work ok.
In order to make it useful we still need some dedicated operators/commands/mappings and such. I have my implementation in my Vim config. However, it lacks documentation and isn't available as a separate plugin, so you're at your own risk trying to figure out the details.