Can you tell when a puzzle has been computer-generated?
Yes, absolutely. Handmade puzzles can very easily be distinguished from computer generated ones by their "solve paths", and often their aesthetic considerations as well. GMPuzzles' blog has some great examples of handmade Sudoku puzzles, and the most recent ones even have spoilers explaining what makes them special.
I don't have as much experience with Sudoku in particular (I mostly solve other similar genres), but in general, computer-generated logic puzzles are pretty easy to distinguish from handmade ones. Computer-generated puzzles are typically fairly "uniform": that is, there's nothing making an individual puzzle special.
This isn't inherently bad - computer-generated puzzles can still be a fun and pleasant way to pass the time! And most people who solve Sudoku probably won't be able to tell the difference. But handmade puzzles can force "whoa" moments that computer-generated ones cannot.
An example of one of these "forced ahas" is in this puzzle, by Thomas Snyder:
If you pay attention to
the 3s, you may notice that most of the squares are ruled out already.
Thinking of things in this way is a pretty standard step. But we don't have any rows, columns, or boxes with exactly one position left for a 3, so it seems like this doesn't immediately work out.
However, look at the third and seventh columns. Neither one has a 3, and they both have only two open spots in the same rows.
We don't know which way around they go, but either way this accounts for the 3s in the top and bottom row:
And now the bottom middle box has a 3 in the middle column, which finally lets us actually place a digit!
The rest of the puzzle is built around this - you're essentially forced to find this deduction to continue with the puzzle. This sort of "forced aha" moment does not generally occur in computer-generated puzzles.
Can you tell when puzzles have been reused?
If the puzzle is handmade, and particularly if it's built around certain forced deductions, then shuffling around the puzzle can still be found out pretty easily. But for computer-generated puzzles - particularly Sudoku, which has many options for "reshuffling" compared to similar genres - you can probably get away with it most of the time.
Any other concerns?
Difficulty is frequently the issue with computer-generated puzzles - they either err on the side of "once you know the most basic deductions, you can solve the puzzle without any thought" or "there's no way to solve this besides brute force / guessing". One way to get around this would be to have particular "allowed deductions" (like the solver at sudoku-solutions does), and then make sure your puzzles are solvable with some configuration of those deductions. This is roughly what 14 Minesweeper Variants does for its puzzle generation. (This strategy also could help for, say, setting up a 'hint system'!)
But, of course, you may not be concerned with some or all of this. Whether it's worth the time to consider any of this depends on your goals for your program, and what you expect/hope it will be used for.