Respecto a los bugs, en algunos programas se pueden reportar desde el mismo, desde el menú Ayuda, pero no es lo normal. Generalmente tienes que ir a la web del programa y tendrá un bug tracker. Por ejemplo, para pidgin:
http://developer.pidgin.im/wiki/TipsForBugReportsRespecto a desarrollar un programa, lo puedes hacer como te venga en gana, con el lenguaje que prefieras y luego tienes que ver qué librerías gráficas puedes usar. Supongo que las más usadas ahora mismo son gtk y qt. No sé mucho del tema así que alguien lo podrá completar mejor.
Para los programas actualizados, pues tú verás. Si sabes que hay una versión más actual y que te interesa de un programa, puedes compilarlo e instalarlo, compilarlo y hacer un paquete, instalar un paquete que haya hecho otro o esperar a que actualicen el paquete en los repositorios. Si no estás seguro o es una actualización que no te afecta, puedes esperar. Que tarden más o menos dependerá de la política de la distribución.
Por ejemplo, para Ubuntu creo que sólo se incluyen actualizaciones menores de programas y se dejan las "gordas" para las versiones finales (cada 6 meses). En archlinux, que es la que uso, así como en debian testing y otras, sabes que las nuevas versiones de los programas llegarán a los repositorios oficiales a los pocos días de ver la luz, aunque menos probadas, como es lógico.