Eu sei que o C não é uma linguagem orientada a objetos, mas as structs não permitem fazer isso?
Sim e não.
O C não é orientado a objetos, voce esta certo. Embora sim, o struct permite voce fazer "Orientação a Objetos em C".
Na verdade, as evoluções do C (C++ e C#) usaram literalmente o struct pra reestrutura toda a linguagem e criar linguagens orientadas a objeto
Não, a linguagem C não é orientada a objeto, apesar da struct ser semelhante a criação de objetos em outras linguagens, que por incrível que pareça foram originadas do C, por exemplo o C++, C#, Java entre outras. Então podemos dizer que implicitamente a orientação a objetos surgiu de uma demanda que não era atendida na linguagem C.