This is a good question.  This flag was added precisely for performance issues.  In transmute.chainsolve, 99.5% of the time was being spent looking up reactions that don't exist.  In an extreme case, such as H-1, most of them don't exist and are impossible. I like your trick of pre-loading even the non-existing reactions.  I hadn't thought of that ;).  However, I think you would still need this test if the data source is fully loaded because there is no way to predict all of the possible nuclide names.  Even if we went with the list of all known nuclides to pre-load as None, a user could type in an impossible nuclide and this would still be fast.  I think what is in there achieves the same goals in the least amount of code.