See the code hint below. Now it's working. The loop had to be closed (as @cantoni had already said). But the problem you reported had to do with the fact that you were over-writing the data collected at each iteration of the for.
What you want is to add rows to the database. So you have to concatenate the existing data with the new ones. That is: the "data" object has to be quoted inside the rbind. It is a recursive operation: the new value of this data.frame is equal to the old one plus the updates.
But before that, you have to transform the vectors "teses.titulos" and "links.teses" into two columns - what I did below with cbind.
# rm(list=ls()) # não é legal colocar no StackOverFlow essa linha...
# options(warn=-1) #não é legal desativar todos os avisos. Coloquei essa opção dentro do comando readLines (abaixo)
#library("RCurl") # desativei -- esse pacote não está sendo usado
library("XML")
baseurl <- "http://www.gmbahia.ufba.br/index.php/gmbahia/issue/archive?issuesPage=XX#issues"
dados <- data.frame()
for (i in 1:10){
print(i)
url <- gsub("XX", i, baseurl)
url <- xmlRoot(htmlParse(readLines(url, warn = F))) # adicionei a opcao de remover avisos aqui
links <- getNodeSet(url, "//h4/a") #adicionei h4 aqui -- pra pegar só os links de teses
## Links das Teses
links.teses <- xmlSApply(links, xmlGetAttr, name = "href")
#links.teses <- grep("view", links.teses, value = T) #desativei - linha desnecessária
#links.teses #desativei - linha desnecessária
## Nomes das Edições
teses.titulos <- xmlSApply(links, xmlValue)
#teses.titulos <- grep("de", teses.titulos, value = T) #desativei - linha desnecessária
#teses.titulos #desativei - linha desnecessária
dados <- rbind(dados, cbind(teses.titulos, links.teses)) #aqui estava o erro
}