op.c: add assertion
op.c: Don’t reallocate a temp for lvalue funcs

There is no reason why keys, substr, pos and vec that can occur in
lvalue context need to reliquish ownership of the scalar in the
scratchpad used to return the value in rvalue context (the TARG) and
then have a new one allocated.

Also, the new TARG was marked PADMY, so, if the lvalue op got freed
(e.g., if it was inside if(0){...}), then its pad slot would remain
unusable by code subsequently compiled in the same sub, since pad_free
only turns off the PADTMP flag, not the PADMY flag, and it would hence
appear to pad_alloc to be still in use.  So it would waste a small
amount of memory in rare cases.  (Based on reading code, not on a
gdb session.)
pp.c: Eliminate unnecessary dORIGMARK from pp_anonlist

This extra protection was added in commit 44a8e56aa0 or d976ac8220
(I’m a little confused as to the history here).

At the time, av_make really could reallocate the stack.  That changed
in commit efaf36747029.

Now there is no need for dORIGMARK and ORIGMARK.  (ORIGMARK is more
expensive than MARK since it looks up PL_stack_base and recalculates
where we are on the stack, based on a recorded offset.  MARK simply
stores a pointer to where we want to be.)
doop.c: Correct introductory text

do_chomp has not been in that file since 81745e4ea46c8.
perlfunc: mention that cho(m)p resets the iterator
pp.c: pp_ref: remove null checks

There is no way a null can get on to the stack here.  The only piece
of code that puts nulls on the stack is pp_coreargs, which doesn’t do
that for functions with a _ prototype.
pad.c: Correct comment added by dd2155a49b