Lo que realmente estas haciendo es leer la posicion de memoria asignado para el puerto. Y si el puerto o pin fue configurado como salida lo que obtendras es el ultimo valor enviado por el pin o puerto.
IIIC esto no siempre es así. Digamos que "depende" de que pic y de que registro estemos hablando.
Si uno lee los registros PORTx, no se lees la posición de memoria asignada al puerto, lees el hardware. Si lees un LATx entonces si lees la memoria.
black_flowers si están como salida no los dañarás pero si la tensión de los mismos no está estabilizada (no es un 0 ni un 1) por ser justo durante una transición puede que varíen su estado cuando lo vuelvas a escribir si es que esto se da en poco tiempo tu hardware está cargado y si funciona a muchos MHz.
Además esto es cierto para una 'escritura' . Si haces un bsf PORTx,3 , también se hace una lectura/modificación/escritura con lo cual estas todo el tiempo leyendo el hardware y es ahí donde hay que tener cuidado.
Saludos