If you pass a locals hash into render() ... why would Rails mutate that hash, adding things to it? This seems awfully odd to me.
Rails has a hash of those local variables that should be created inside a partial (for example if you are rendering a collection then the current object in that collection is assigned to the appropriate local variable name). If you supply a hash it uses that (perhaps it should dup the hash you provide). This shouldn't have anything todo with rendering partials from partials