Update: (copied from my response in fenics-support google group, after solving the issue):
I had to dig around in the source files (NonlinearVariationalSolver.cpp in dolfin/dolfin/fem/) and the proper syntax is:
SolverPhi->parameters("newton_solver")["error_on_nonconvergence"] = false;
Thus, this differs from python in that the newton_solver parameters are returned via function call (with string argument "newton_solver") instead of (what appears) as a key-value extraction directly in python.
To give a further explanation for future reference, the Parameters class is attached to the base class Variable, of which both NonlinearVariationalSolver and NewtonSolver are derived classes. In writing-out this response, I have just found there is a proper explanation in the source file "Parameters.cpp" (note the 's' at the end, located in dolfin/dolfin/parameter/), which says:
/// Parameter sets may be nested as follows:
/// Parameters q("nested_parameters");
/// p.add(q);
/// Nested parameters may then be accessed by ///
/// p("nested_parameters")["..."]
/// Parameters may be nested at arbitrary depths.
This may exist somewhere in the documentation for Parameters, but it would be helpful to add this to the documentation of NonlinearVariationalSolver and/or NewtonSolver. The confusing part was that the object newton_solver is private in NonlinearVariationalSolver, but yet one still needs access to the parameters of the NewtonSolver class from the NonlinearVariationalSolver class. In any case these access rules make it clear.
Cheers,
James W.