In any case, is it considered an abuse of the protocol to refer to the orphan block in my app? , so if I get 1 confirmation in a orphan block, is it safe to assume that block will be remembered by the network forever? Are there any official guarantees about the availability of orphan blocks, in bitcoind or other implementations, or are they prune-able and I should expect it to be pruned sooner or later?
There is no guarantee that a node will see a block if it is not in the main chain because blocks are generally not propagated once they are determined to be stale.