Looks like that was it!
getOption("download.file.method")
was returning "libcurl"
and renv:::renv_download_file_method()
returns "curl"
It looks like I had accidentally to install curl as guix user profile package, so which curl
was pointing at "~/.guix_profile/bin/curl" rather than the system curl.
Removing that so R finds the system curl fixed the problem. Though I still don't know what the problem with the guix curl binary was.
Setting RENV_DOWNLOAD_FILE_METHOD="libcurl" worked too, but I didn't actually want the guix package installed, anyway.
Thanks so much for the help!