Possibly at some version this just started to work:
dict_arg = {'test':'test'}
r_arg = rpy2.robjects.ListVector(dict_arg)
# and then function call
r_func = ro.globalenv['r_function_with_list_arg']
r_res = r_func(user_options=r_arg)
Full scale example with custom converter, passing args back and forth, capturing output, and so on. The very call which passes list (dict) arg is r_res = func_run_web_tool(user_options=r_options)
, debug run can be started via test_reddyproc.py.