Quoting with quo and quoted strings are different since quo gives you symbol while strings give you, well, strings. Therefore, you can't treat them the same. If your API takes strings, then you can convert them to symbols with syms and it'll work exactly the same as your quo example:
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
library(tidyverse)
x <- c(quo(a), quo(b))
quo_res <- tibble(a=c(1,2,2,3), b=c(1,2,2,3), c=1:4) %>% count(!!!x)
x <- c("a", "b")
sym_res <- tibble(a=c(1,2,2,3), b=c(1,2,2,3), c=1:4) %>% count(!!!rlang::syms(x))
dplyr::all_equal(quo_res, sym_res)
#> [1] TRUE