I agree that interpreting the URI options should be in the client.  That said, perhaps :read => {:slave_ok => true} would be set if slaveOk=true is in the URI?
Then you would have :read => { :mode =>:primary, :slave_ok => true } with the additional presence of readPreference=primary

It would then be up to client to take into account :mode =>:primary over :slave_ok => true