Package-accessible header file <R_ext/Connections.h> defines the Rconn struct, and methods for reading and writing from connections represented by this struct type. However, it appears not to be possible to obtain such a struct from a suitable SEXP (relevant questions on R-devel and StackOverflow at [1,2]), and neither is there an explicit statement in "Writing R Extensions" that such access is intentionally unavailable.
The most obvious means to make this step appears to be via the non-API function getConnection(), viz.
since the connection is essentially an INTSXP with a "connection" class and external pointer attribute. Adding "getConnection" to the API is therefore one possible solution, if this is deemed desirable.
This would help packages avoid reinventing the wheel in terms of access to files, URLs, etc. (albeit with the proviso about future backwards-compatibility stated in the header).