Um ".so" (objeto compartilhado) é uma biblioteca. Como tal, ele fornece uma interface definida para os programas vinculados a ele para fazer uso da funcionalidade fornecida pela biblioteca, também chamada de API . Nos objetos compartilhados, essa API é versionada, de modo que os programas que usam a biblioteca podem usar uma versão com a qual sejam compatíveis. Veja também esta resposta em "Unix e Linux".
A versão da biblioteca que você mencionou pode ser independente da versão da API. A versão da biblioteca descreveria o código que compõe a funcionalidade da biblioteca, a implementação. Pode aumentar quando os erros são corrigidos ou os algoritmos são otimizados. Mas, ao mesmo tempo, a API pode permanecer estável, o que significa que os nomes das funções e seus parâmetros não mudam, portanto, a versão da API permanece a mesma.
O dígito após o .so descreve a versão da API.