Quando a gente cria um objeto novo, o id é criado automaticamente. Se precisamos buscar os dados de um objeto do banco, usamos o find que já popula este campo automaticamente.
Assim sendo, existe algum cenário no qual um setID seria justificável existir?
Curiosamente criei algo semelhante ao que estou vendo neste curso no sistema VB6 da empresa onde trabalho para que os programadores não tenham que ficar programando SQL a toda hora ao manipular dados dos objetos no banco e me deparei com esta situação. Achei que deveria remover os Lets (equivalente a set) de ID nas classes como medida de segurança, de modo que o programador faria o equivalente ao find do JPA e faria set só do que precisasse mudar, ou na criação de um novo objeto, popular todos os campos e o banco de dados se viraria com a criação do ID (que é populado no objeto pelo meu método de insersão no banco).
Obrigado