For reading a table via RFC we can called RFC_READ_TABLE function. It can return rows of up to 512 characters at max (unless the Z_AW_* functions shipped with DataServices are installed in SAP) - if the list of columns is wider than that the procedure will fail - and you can even specify a where clause.
We can write our own RFC function, which can return more bytes per row and even takes an entire SQL statement as input. This way we can even join tables. But only if they can be joined inside the SQL. Thus joining pool or cluster tables is impossible. As a result, the performance when reading such an important thing like e.g. financial documents (BSEG table) will be unacceptable.
And for sure we will not be able to call SAP functions inside.