It cannot be a limitation of SAP RFC. I have made a simple test. I created an RFC function module in one of the systems (let us name the RFC destination for it DEV000). It looks like this.
FUNCTION Z_TEST .
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" EXPORTING
*" VALUE(E_STRING) TYPE STRING
*"----------------------------------------------------------------------
e_string = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`.
DO 23 TIMES.
e_string = e_string && e_string.
ENDDO.
ENDFUNCTION.
Then I wrote a simple program in another system that calls this function module.
REPORT ZZZ.
DATA: g_string TYPE string.
CALL FUNCTION `Z_TEST`
DESTINATION `DEV000`
IMPORTING
e_string = g_string.
BREAK-POINT.
The string gets transferred in full, so it cannot be a limitation of SAP RFC. I guess you have to search for the cause rather in your pyRFC library or in your Python's client code.