No, I didn't mean like the Tarjan example you reference.

For Tarjan, with a tree as input, each pair of vertices has exactly one LCA.

However, for a DAG, which can have multiple roots, a pair of vertices may have more than one LCA, right?  

Your implementation currently finds one, but a future improvement might be able to return all, so it would be better to make the interface forward compatible, wouldn't it?