I can't agree with that. Labour could quite legitimately claim that this "deal" is a purely Conservative Party measure and therefore either vote against it, as the SNP, Lib Dems, Plaid Cymru & the Greens did, or at the very least abstain on the grounds that the deal is bad for Britain and so they cannot support it. As it is, whenever they criticise the deal from now on, the question will be asked "why did you vote to support it, then?" The deal would have been passed anyway given the fact that all the Tory MPs voted for it.
Nuances can quite easily be ignored when it comes to electioneering.
If Labour voted against it, they'd be seen as an immature party of protest risking no deal for political games. The Tories would be able to attack them with impunity forevermore - "Brexit might have been a bad idea but Labour wanted a no deal, which would have been worse!"
By voting for it while expressing the fact they're doing so out of necessity, the Tories still fully own Brexit and Labour are seen as the grown ups.
The public are sick of Labour being a party of perpetual protest instead of a party in waiting ready to lead. The damage done by Corbyn was incalculable and this is just one more step in repairing it.
nothing to do with the tide of Brexit, nothing to do with the changing demographics of these northern towns... The result last year wasn't a buck in the trend because of Corbyn, it was business as usual for Labour apart from 2017.