Assuming Mahoney takes spot 29 and no one leaves, then you leave spot 30 open for an astute purchase at the time from a club who is desperate to offload someone early/mid year.
I'm all for holding spots until required, but it would make zero sense to leave a spot open in the hope that another club will look to shed someone that suddenly ticks all the boxes compared to already having a readily available player who was one of your best last season.
I'm not completely for signing Hayne but if it was me and cap space was available, I'd sign Hayne, or any player who's going to be as definitively in your starting side as Hayne would be, even if it meant maxing out cap & squad numbers, opposed to hoping a player we'd need becomes available before 30 June. Plus already having 30 players wouldn't stop us from shopping around a player as well. (On a side note if the NRL wanted to stop the Moses 2017 situation then they'd make teams have 30 players before Round 1, it'd at least force player swaps, or stingier cap management)