Separating vector objects into individual layers?

Yeah, it is grouped. Here you go (it will unwrap the single group but it doesn’t account for any group transformations, which in your case there is none so it isn’t a problem, just noting for others)

import re
from PyQt5 import *
from PyQt5.QtSvg import QSvgRenderer
from PyQt5.QtGui import QImage, QPainter, QPixmap
import xml.etree.ElementTree as ET


doc = Krita.instance().activeDocument()
layer = doc.activeNode()

dlg = QtWidgets.QFileDialog()
dlg.setFileMode(QtWidgets.QFileDialog.AnyFile)
filename = dlg.getOpenFileName(None, "Open SVG", "", "SVG files (*.svg)")


file = open(filename[0],'r')
data = file.read()

svgHeader = re.compile('(^.*?\<svg.*?["\']\\s*\>\\s*(<defs\/>|<defs>.*?<\/defs>|)).*$', re.DOTALL).sub(r'\1',data)


w = doc.width()
h = doc.height()

x = 0
y = 0

svg = ET.fromstring(data)

allshapes = svg.findall('*')
shapes = []
for shape in allshapes:
    tag = shape.tag.split('}')
    if len(tag) > 1: shape.tag = tag[1]
    if shape.tag != 'defs' and shape.tag != 'namedview':
        shapes.append(shape)

if len(shapes) == 1 and shapes[0].tag == 'g':
    shapes = shapes[0].findall('*')


groupLayer = doc.createGroupLayer('Group Import')
for shape in shapes:
        data = str(ET.tostring(shape))
        data = re.sub('ns0:','', data)
        data = svgHeader + data + '</svg>'

        svgrenderer = QSvgRenderer(bytearray(data, encoding='utf-8'))
        image = QImage(w, h, QImage.Format_ARGB32)
        image.fill(0x00000000)
        svgrenderer.render(QPainter(image))

        ptr = image.constBits()
        ptr.setsize(image.byteCount())

        rLayer = doc.createNode(shape.get("id"), "paintLayer")
        rLayer.setPixelData(bytes(ptr.asarray()),x,y,w,h)
        groupLayer.addChildNode(rLayer, None)
layer.parentNode().addChildNode(groupLayer, layer)
doc.refreshProjection()