The trouble would come from the fact that bind_param and friends expect to recieve arguments by reference and that the list of variable names that will be referenced is determined at runtime.
Bugs could arise if any of the variable names are generated, rather than pulled from a hard-coded list. Especially if the generation has any sort of user input as generation input.
By bugs, I mean that previously created variables could be overwritten by bind_result and unexpected variables could inadvertently be pulled into a query by bind_param.
For an example of an overwrite bug, check out this pair of loops
for($i = 0; $i < 100; $i++)
for($i = 0; $i < 50; $i++)
Because the inner loop keeps resetting $i, the loop would run indefinitely. While a bind_result bug probably wouldn't leave anything running in an infinite loop, it might overwrite something that's used to build a later variable and cause unexpected output.