Should I expect to be able to unnest_wider() or hoist() with nested data frames?

I'm processing queries from a mongo database and was expecting to be able to flatten the results out as shown How am I thinking about this incorrectly?

library(tidyverse)

mongo_return <-
  structure(list(
    chamber = "House", party_code = 200L, bioname = "ABRAHAM, Ralph",
    twitter = "RepAbraham", nominate = structure(list(
      dim2 = 0.276,
      log_likelihood = -87.3178688959091,
      dim1 = 0.509,
      conditional = 1L,
      number_of_votes = 950L,
      geo_mean_probability = 0.912184007904348,
      number_of_errors = 27L,
      total_number_of_votes = 2105L
    ),
    row.names = c(NA, -1L), class = "data.frame"
    )
  ), row.names = c(NA, -1L), class = "data.frame")

glimpse(mongo_return)
#> Observations: 1
#> Variables: 5
#> $ chamber    <chr> "House"
#> $ party_code <int> 200
#> $ bioname    <chr> "ABRAHAM, Ralph"
#> $ twitter    <chr> "RepAbraham"
#> $ nominate   <df[,8]> <data.frame[1 x 8]>

# what I want--this works, but feels wrong  
bind_cols(
  mongo_return %>% select(-nominate),
  mongo_return %>% pull(nominate)
  ) %>% glimpse()
#> Observations: 1
#> Variables: 12
#> $ chamber               <chr> "House"
#> $ party_code            <int> 200
#> $ bioname               <chr> "ABRAHAM, Ralph"
#> $ twitter               <chr> "RepAbraham"
#> $ dim2                  <dbl> 0.276
#> $ log_likelihood        <dbl> -87.31787
#> $ dim1                  <dbl> 0.509
#> $ conditional           <int> 1
#> $ number_of_votes       <int> 950
#> $ geo_mean_probability  <dbl> 0.912184
#> $ number_of_errors      <int> 27
#> $ total_number_of_votes <int> 2105

# hoped this would work
mongo_return %>% unnest_wider(nominate)
#> New names:
#> * `` -> ...1
#> New names:
#> * `` -> ...1
#> New names:
#> * `` -> ...1
#> New names:
#> * `` -> ...1
#> New names:
#> * `` -> ...1
#> New names:
#> * `` -> ...1
#> New names:
#> * `` -> ...1
#> New names:
#> * `` -> ...1
#> Error in rep(vec_seq_along(data), n): invalid 'times' argument

# can I pluck?
mongo_return %>% hoist(nominate,
  dim1 = "dim1"
)
#> Error in `[[<-.data.frame`(`*tmp*`, .col, value = list(dim2 = 0.276, log_likelihood = -87.3178688959091, : replacement has 8 rows, data has 1

Created on 2019-10-07 by the reprex package (v0.3.0)

Perhaps this feels better?

mongo_return %>%
  flatten %>%
  as_tibble
# A tibble: 1 x 12
  chamber party_code bioname   twitter   dim2 log_likelihood  dim1 conditional number_of_votes geo_mean_probab… number_of_errors total_number_of_…
  <chr>        <int> <chr>     <chr>    <dbl>          <dbl> <dbl>       <int>           <int>            <dbl>            <int>             <int>
1 House          200 ABRAHAM,… RepAbra… 0.276          -87.3 0.509           1             950            0.912               27              2105

It does, but I fear my reprex was too minimal. Adding an additional row causes flatten() to duplicate the unnested columns and discard their names.

library(tidyverse)

mongo_return <-
  structure(list(
    chamber = c("House", "House"),
    party_code = c(200L, 100L),
    bioname = c("ABRAHAM, Ralph", "ADAMS, Alma"),
    twitter = c("RepAbraham", "RepAdams"),
    nominate = structure(list(
      dim2 = c(0.276, 0.023),
      log_likelihood = c(-87.3178688959091, -58.4741390664067),
      dim1 = c(0.509, -0.469),
      conditional = c(1L, 1L),
      number_of_votes = c(950L, 938L),
      geo_mean_probability = c(0.912184007904348, 0.939564163164169),
      number_of_errors = c(27L, 25L),
      total_number_of_votes = c(2105L, 2052L)
    ),
    row.names = c(NA, -2L), class = "data.frame"
    )
  ),
  row.names = c(NA, -2L), class = "data.frame"
  )
# still works
bind_cols(
  mongo_return %>% select(-nominate),
  mongo_return %>% pull(nominate)
) %>% glimpse()
#> Observations: 2
#> Variables: 12
#> $ chamber               <chr> "House", "House"
#> $ party_code            <int> 200, 100
#> $ bioname               <chr> "ABRAHAM, Ralph", "ADAMS, Alma"
#> $ twitter               <chr> "RepAbraham", "RepAdams"
#> $ dim2                  <dbl> 0.276, 0.023
#> $ log_likelihood        <dbl> -87.31787, -58.47414
#> $ dim1                  <dbl> 0.509, -0.469
#> $ conditional           <int> 1, 1
#> $ number_of_votes       <int> 950, 938
#> $ geo_mean_probability  <dbl> 0.9121840, 0.9395642
#> $ number_of_errors      <int> 27, 25
#> $ total_number_of_votes <int> 2105, 2052

# drops unnested col names
mongo_return %>%
  purrr::flatten() %>% 
  as_tibble(.name_repair = "unique") %>% 
  glimpse()
#> New names:
#> * `` -> ...1
#> * `` -> ...2
#> * `` -> ...3
#> * `` -> ...4
#> * `` -> ...5
#> * ... and 3 more problems
#> Observations: 2
#> Variables: 16
#> $ ...1                  <chr> "House", "House"
#> $ ...2                  <chr> "House", "House"
#> $ ...3                  <int> 200, 200
#> $ ...4                  <int> 100, 100
#> $ ...5                  <chr> "ABRAHAM, Ralph", "ABRAHAM, Ralph"
#> $ ...6                  <chr> "ADAMS, Alma", "ADAMS, Alma"
#> $ ...7                  <chr> "RepAbraham", "RepAbraham"
#> $ ...8                  <chr> "RepAdams", "RepAdams"
#> $ dim2                  <dbl> 0.276, 0.023
#> $ log_likelihood        <dbl> -87.31787, -58.47414
#> $ dim1                  <dbl> 0.509, -0.469
#> $ conditional           <int> 1, 1
#> $ number_of_votes       <int> 950, 938
#> $ geo_mean_probability  <dbl> 0.9121840, 0.9395642
#> $ number_of_errors      <int> 27, 25
#> $ total_number_of_votes <int> 2105, 2052

Created on 2019-10-08 by the reprex package (v0.3.0)