There are no blueprints for ElementIds, UID(they arent really guids) anyway. This is all internal code and unless Autodesk shares it(you dont really need to know) all i know is ElementIds may change when central files reconcile UID’s dont. Sync to central does all the rest of the work. As for Revit dynamo can only work within the confines of the Revit API. AKA the same rules apply to a user in a workshared environment as dynamo. If items are checked out when you run a transaction dynamo will roll back the transaction. So there are user permissions you would need to deal with prior to running anything.
Dynamo has the ability to read any dll and expose classes, methods and properties with that files just by using Import.
If you are a noob to programming then your probably going to have a tough time understanding how dll’s work let alone how to build something like DynaWorks. There’s nothing too complex in there but it does require a reasonable understanding of OOP, COM, dotnet references(Reflections, Collections). If your not sure what I am talking about then I would go get a learn to program book and start with that.
As for DynaWorks, it simply exposes functions that are in the COM API with a wrapper that makes reading the nodes user friendly and also passes out various results in internal classes so as not to expose the original classes to the Dynamo node creation class methods or create any work Navis API instances already deliver. This has dependancies on a number of Dynamo dll’s that create custom nodes in the actual package aswell.
As for python I assume you would do it the same way(I am not a Python dev), write wrappers for python import the various libraries from whatever sources (Dynamo, Numpy), build the source with a dotnet compiler and you would have access to those objects. Alternatively I believe a few people have written python parsers so you just load your py scripts and it executes, but there are others better able to answer that question. This all depends whether you want nodes to work with or are you looking to extend python script nodes with other packages support. The former will be much easier then the latter.