Olá Ivan...A escolha de 'tinyint' para esse campo chave primária é porque ele pertence a uma tabela que, na verdade, é um dicionário que nunca ultrapassará o limite de 255 registros.
Sempre que defino um campo numérico procuro ajustá-lo ao tipo mais econômico sem prejuízo do seu 'tempo de vida'. Por exemplo, para IDs(PKs) de tabelas de cadastro e movimento, utilizo o 'int'. Agora, para campos marcadores se situação/status apenas (referenciados em outras tabelas ou em enumeradores) escolho o menor tamanho possível: smallint ou tinyint. Com isso o banco de dados irá consumir menos espaço.
Um exemplo: Codificamos em uma tabela um campo numérico para diferenciar um status com três possibilidades exclusivas: (1-Pendente/2-Bloqueado/3-Finalizado). Então, por que utilizar um 'int' que irá consumir 4 bytes se posso perfeitamente acomodar a demanda em um tinyint que consome apenas 1 byte?
Notei que os desenvolvedores da MicroFour, nos exemplos - mesmo com enumeradores, utiliza o 'int'. Acredito que essa 'preferência' para o 'int' tenha deixado escapar algum 'bug' no código do 'Search Field Criteria' do 'BrowseDialog'.