Você deveria tratar essas situações, pois toda vez que o device é rotacionado o Android recria as atividades assim ele chama o onCreate novamente porem com o savedInstanceState diferente de null, no caso, você deveria tratar/salvar o status da tela ou os dados no momento da rotação pelo metodo onSaveInstanceState(), assim você trata logicamente a rotação quando a atividade for recriada, se for necessário refazer ou não a chamada do seu servidor quem decidirá é sua lógica de negócio.
Uma opção como exemplo: você poderia salvar o retorno de sua chamada do service como uma variável, e ao rotacionar, você salva esses dados no Bundle do método onSaveInstanceState() e ao recriar a atividade você verifica se savedInstanceState for diferente de null você restaura os dados se não você faz a chamada no seu service, pois, quando o savedInstanceState for igual a null seria a primeira vez que essa atividade está sendo criada.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (null == savedInstanceState) {
chronometer = Chronometer()
}else{
chronometer = savedInstanceState.getSerializable("chronometer") as Chronometer
}
}
override fun onSaveInstanceState(outState: Bundle) {
outState.putSerializable("chronometer", chronometer)
}